缺少的函數

雖然 PHP 4 帶來了許多新功能、函數和增加,但是會發現一些原本在 PHP 3 中存在的函數不見了。少量的內核函數被取消,因為它們不符合 Zend engine 新的解析--執行的模式。另外一些函數甚至是增加完全的被荒廢,是因為新的函數可以更好的完成舊函數的功能。一些函數只是空函數,而另一些因為版權衝突而取消了。

由於概念的改變而取消的函數

PHP 4 現在將解析從執行中分離,因此不可能在運行時間改變解析器(現在已經內嵌 Zend engine)的行為,此時已經解析完畢了。所以函數 short_tags() 不再存在。仍然可以對 php.ini 檔案設定適當的值以改變編譯器的行為。

另一個 PHP 3 的功能在 PHP 4 中不復存在:內定捆綁的 debug 介面。現在有第三方 Zend engine 的 add-ons 有著類似的功能。

不推薦使用的函數和增加

Adabas 和 Solid 資料庫增加不再推薦使用。最好使用統一的 ODBC 增加代替。

unset() 的改變

unset(),雖然仍然可以使用,但是它成為了語系結構的一部分,而不是一個函數。

這對 unset() 的行為不會產生什麼影響,但是使用 function_exists() 函數測試「unset」時會返回 FALSE。它已經是 PHP 語系的一部分,雖然它很像函數。這和 echo() 是一樣的。

另一個實際的改變是,不能間接呼叫 unset()。因此 $func="unset"; $func($somevar) 不再工作。