解析器行為

解析和執行現在變為兩個完全獨立的步驟。只有當完全成功的解析後,程式才會執行。

這種改變所帶來的一個新的要求是一個腳本檔案所包括的另一個檔案必須有著完整的語法結構。不能將一個完整的控制結構分散在不同的檔案中。這意味著不能在一個檔案中開始一個 forwhile 迴圈、一個 ifswitch 塊,而在另一個檔案中結束它們,或在另一個檔案中使用 elseendifcasebreak

但是在迴圈或其它控制結構中包括額外的腳本檔案是容許的。只要控制的關鍵詞和相應的 {...} 在同一個單元(檔案或使用函數 eval() 結合的字串)中就可以了。

不過,在迴圈或其它控制結構中包括額外的腳本檔案並不是一個好的寫程式習慣。

另外,一種在 PHP 3 中不常見的代碼--從一個 require 的檔案中返回值--在 PHP 4 中也不能使用。而從一個 include 檔案中返回值還是容許的。