多くの既存の PHP 4 のコードは変更無しで動作するはずですが、 以下の下位互換性がない変更点について注意する必要があります。
例1 strrpos() と strripos() は、 needleとして文字列全体を使用する
<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)
var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>
例2 プロパティを持たないオブジェクトはもはや"空"とはみなされない
<?php
class 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';
}
}
?>