そのまんま!

下位互換性のない変更点

多くの既存の PHP 4 のコードは変更無しで動作するはずですが、 以下の下位互換性がない変更点について注意する必要があります。

例 C-1. strrpos()strripos() は、 needleとして文字列全体を使用する

<?php
var_dump
(strrpos('ABCDEF','DEF')); //int(3)

var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>

例 C-2. プロパティを持たないオブジェクトはもはや"空"とはみなされない

<?php
class test { }
$t = new test();

var_dump(empty($t)); // echo bool(false)

if ($t) {
    
// 実行される
}
?>

以下の例はPHP 4では有効でしたが、PHP 5では致命的なエラーを 発生します。

例 C-3. クラスは使用前に宣言する必要がある

<?php
$test
= new fubar();
$test->barfu();

class
fubar {
    function
barfu() {
        echo
'fubar';
    }
}
?>