Ondanks de meeste bestaande PHP 4 code zou moeten werken zonder veranderingen, kan je best aandacht besteden aan volgende terugwaardse incompatibiliteit veranderingen:
Example#1 strrpos() en strripos() gebruiken nu de gehele string als naald.
<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)
var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>
Example#2 Een object zonder properties wordt niet langer beschouwd als "empty".
<?php
class test { }
$t = new test();
var_dump(empty($t)); // echo bool(false)
if (!$t) {
// Will be executed
}
?>
Het volgende voorbeeld was geldig in PHP 4, maar in PHP 5 zal het een fatal error produceren.
Example#3 Classes moeten gedeclareerd worden voor gebruik
<?php
$test = new fubar();
$test->barfu();
class fubar {
function barfu() {
echo 'fubar';
}
}
?>