PHP 4は多くの新しい機能と拡張を導入していますが、同時にいくつか のバージョン3の関数は廃止されています。コア関数のいくつかは、 Zendエンジンを使用する4で導入されたパーサと実行モジュールの分割 という新たな形態では動作しないため、廃止されています。他の関数や拡 張機能全体もより新しい関数や拡張が同じタスクをより良くより一般的な 手法で行うため古くなっています。いくつかの関数は単にまだ移植されて いないだけであり、いくつかの関数や拡張はライセンス上の問題により廃 止されています。
PHP 4ではパースと実行が分割されており、実行時に(現在、Zendエン ジンに組み込まれている)パーサの動作を変更することは、パースが実行 前に既に行われているため、もうできません。 php.ini ファイルで適当な値を設定することによ りパーサの動作を変更することが可能です。
PHP 3の機能でPHP 4でサポートされていない機能としては、 このマニュアルで記述されている実験的なデバッグインターフェースの サポートがあります。独立した本格的なデバッガがZendの製品としてリ リースされています。
unset()はまだ使用可能ですが、PHP 4ではリテラ ルとして実装されるように変更されており、このため、'真の'関数とし てはもはや数えられていません。
これは、unset() の動作を変更するものではないの で、直接的な変更点があるわけではありませんが、 function_exists() により "unset" を調べた場合、 echo()のような他の低レベル関数と同様に FALSE が返されます。
その他のより実際的な変更としては、unset() を間 接的にコールすることができなくなったというものがあります。このた め、$func="unset"; $func($somevar) はもう動作 しません。