2013-02-04 53 views
1

我遇到了php.net(最後一個音符)的音符。離開筆記的人說:處理和執行的區別?

在全局範圍內使用return,它將結束執行但不處理。

我不知道「執行」和「處理」的確切含義以及它們之間的區別。

回答

1

請注意,這兩個條款已寫入用戶,而不是來自PHP手冊本身,但是相同的PHP頁面回答你的問題:

如果從全球範圍內調用,然後執行當前腳本 文件結束。如果包含或需要當前腳本文件,則將控制權傳遞迴調用文件。此外,如果包含 當前腳本文件,則返回的值將返回爲 作爲包含調用的值。如果在主腳本文件中從 調用返回,則腳本執行結束。如果 當前腳本文件是由php.ini中的auto_prepend_file或 auto_append_file配置選項命名的,則該腳本 文件的執行結束。

因此,即使當處理完成當前文件返回時,它也會將控制返回到包含它的文件(如果是)。如果它沒有任何地方包括再處理和執行都將停在那裏

而且就在這點中的一個重要的意見解釋

現在,PHP的工作方式是執行實際的代碼之前它什麼 你調用「處理」實際上只是一種語法檢查。它在執行該文件之前每次執行每個文件都會執行此操作 。這 是一個很好的功能,因爲它確保不運行 非功能代碼的任何部分。你的例子也可能說...是 ,在做這種語法檢查它不執行代碼,只是通過你的文件(或包含)運行 檢查執行 之前的語法錯誤。爲了表明這一點,你應該把回聲「b」;並回顯「a」; 在每個文件的開始。這將顯示「b」被回顯一次, 然後「a」僅回顯一次,因爲第一次語法 檢查了a.php,那就沒問題。但是第二次語法檢查失敗 ,因此由於語法錯誤它不再被執行並終止執行 應用程序。

參考兩種行情:PHP Manual

+0

其實,我的帖子前閱讀所有的筆記。這只是我不能理解的最後一個註釋。 – cyhcyhhychyc

相關問題