2013-07-20 31 views
0

我想知道這兩個Zend轉向函數之間的區別。顯然,當我打電話gotoUrl重定向我新的頁面和代碼的其餘部分將不執行像Zend gotoUrlAndExit VS gotoUrl

... Some Code // This will execute 

    $redirector->gotoUrl('bamboo/jamboo') ; // Page will redirect to jamboo and reset of code will not execute. 

    ... Some Code // This will not execute as we already redirect to new page. 

爲什麼重定向後退出?這有什麼意義?任何想法?

回答

2

這是關於重定向如何工作的一個相當常見的誤解。

當您撥打gotoUrl時,您正在向瀏覽器發送一條消息「轉到我現在提供給您的此URL」,但該頁面上的其他腳本繼續運行(並且您仍然可以發送更多在腳本運行時向瀏覽器發送信息)。這實際上可能會導致一些truly epic destruction

另一方面,gotoUrlAndExit告訴瀏覽器同樣的事情,但它阻止了任何進一步的代碼執行。

很多時候,這兩個函數會有相同的行爲,但是知道它們之間的區別是值得的。

+0

是否意味着你必須在重定向後放棄或退出?如果我們沒有zend框架 –

+0

是的。 'header'不會停止腳本執行,它只是將HTTP標頭添加到頂部。 – cwallenpoole

+0

非常感謝@cwallenpoole –