缺少的函数

虽然 PHP 4 带来了许多新功能、函数和扩展,您还是会发现一些本在 PHP 3 中存在的函数不见了。少量的内核函数被取消,因为它们不符合 Zend engine 新的解析――执行的模式。另外一些函数甚至是扩展完全的被荒废,是因为新的函数可以更好的完成旧函数的功能。一些函数只是空函数,而另一些因为版权冲突而取消了。

由于概念的改变而取消的函数

PHP 4 现在将解析从执行中分离,因此不可能在运行时间改变解析器(现在已经嵌入 Zend engine)的行为,此时已经解析完毕了。所以函数 short_tags() 不再存在。您仍然可以对 php.ini 文件设置适当的值以改变编译器的行为。

另一个 PHP 3 的功能在 PHP 4 中不复存在:内部捆绑的 debug 接口。现在有第三方 Zend engine 的 add-ons 有着类似的功能。

不推荐使用的函数和扩展

Adabas and Solid 数据库扩展不再推荐使用。最好使用统一的 ODBC 扩展代替。

unset() 的改变

unset(),虽然仍然可以使用,但是它成为了语言结构的一部分,而不是一个函数。

这对 unset() 的行为不会产生什么影响,但是使用 function_exists() 函数测试“unset”时会返回 FALSE。它已经是 PHP 语言的一部分,虽然它很像函数。这和 echo() 是一样的。

另一个实际的改变是,不能间接调用 unset()。因此 $func="unset"; $func($somevar) 不再工作。