Cu toate că majoritatea codului-sursă existent în PHP 4 ar trebui să funcționeze fără schimbări, totuși ar trebui să atrageți atenția la următoarele schimbări incompatibile în sens invers:
Example #1 strrpos() și strripos() acum utilizează întregul string în calitate de 'ac'
<?php
var_dump(strrpos('ABCDEF','DEF')); //int(3)
var_dump(strrpos('ABCDEF','DAF')); //bool(false)
?>
Example #2 Un obiect fără proprietăți nu mai este considerat "vid"
<?php
class test { }
$t = new test();
var_dump(empty($t)); // echo bool(false)
if ($t) {
// Va fi executat
}
?>
Example #3 În unele cazuri clasele trebuie declarate înainte de a fi utilizate
<?php
// funcționează fără erori:
$a = new a();
class a {
}
// aruncă o eroare:
$a = new b();
interface c{
}
class b implements c {
}
?>