从 PHP 4 移植到 PHP 5
PHP Manual

未向下兼容的改变

尽管大部分 PHP 4 的代码应该不用修改就能运行,还是应该留意以下不向下兼容的改变:

Example #1 strrpos()strripos() 如今用整个字符串作为 needle

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

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

Example #2 没有属性的对象不再被当成“empty”

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

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

if ($t) {
    
// Will be executed
}
?>

Example #3 有些情况下类必须在使用之前定义

<?php

//works with no errors:
$a = new a();
class 
{
}


//throws an error:
$a = new b();

interface 
c{
}
class 
implements {
}

?>


从 PHP 4 移植到 PHP 5
PHP Manual