多くの既存の PHP 4 のコードは変更無しで動作するはずですが、 以下の下位互換性がない変更点について注意する必要があります。
E_WARNING
E_ERROR
PATH_TRANSLATED
SCRIPT_FILENAME
T_ML_CONSTANT
E_ALL
T_COMMENT
T_DOC_COMMENT
__CLASS__
__METHOD__
__FUNCTION__
false
例1 strrpos と strripos は、 needleとして文字列全体を使用する
<?phpvar_dump(strrpos('ABCDEF','DEF')); //int(3)var_dump(strrpos('ABCDEF','DAF')); //bool(false)?>
例2 プロパティを持たないオブジェクトはもはや"空"とはみなされない
<?phpclass test { }$t = new test();var_dump(empty($t)); // echo bool(false)if ($t) { // 実行される}?>
以下の例はPHP 4では有効でしたが、PHP 5では致命的なエラーを 発生します。
例3 クラスは使用前に宣言する必要がある
<?php$test = new fubar();$test->barfu();class fubar { function barfu() { echo 'fubar'; }}?>