Cu toate că codul-sursă existent în PHP 5 trebuie să funcționeze fără schimbări, ar trebui să atrageți atenția la următoarele schimbări incompatibile în sens invers:
null
când îi sunt transmise
argumente incompatibile începând cu PHP 5.2.1.
true
în caz de
succes începând cu PHP 5.2.1.
true
în caz de
succes începând cu PHP 5.2.1.
false
. Începând cu PHP 5.2.0 această operație va emite un
E_WARNING
, după cum e cazul și în orice altă
situație când se efectuează împărțirea la zero.
<?php
print 10 % 0;
/* Warning: Division by zero in filename on line n */
?>
<?php
class foo {}
$foo = new foo;
print $foo;
/* Catchable fatal error: Object of class foo could
not be converted to string in filename on line n */
?>
<?php
class foo {
public function __toString() {
throw new Exception;
}
}
try {
print new foo;
/* Fatal error: Method foo::__toString() must
not throw an exception in filename on line n */
} catch(Exception $e) {}
?>
<?php
abstract class foo {
abstract static function bar();
/* Strict Standards: Static function foo::bar()
should not be abstract in filename on line n */
}
?>
data:
).
Introducerea schemei URL 'data' poate duce la o schimbare în comportament
sub Windows. Dacă lucrați cu un sistem de fișiere NTFS
și utilizați meta-fluxurile în aplicația dumneavoastră, și dacă se
întâmplă să utlizați un fișier cu denumirea 'data:', accesat fără
informația despre cale - aceasta nu va mai funcționa. Pentru a corecta
aceasta, utilizați protocolul 'file:' pentru a-l accesa.
Accesați de asemenea » RFC 2397
<?php
/* when allow_url_include is OFF (default) */
include "data:;base64,PD9waHAgcGhwaW5mbygpOz8+";
/* Warning: include(): URL file-access is disabled
in the server configuration in filename on line n */
?>
glob()
În versiunea 5.2.4 o corectare a unei probleme de securitate cauza un
regres al șabloanelor de forma "/foo/*/bar/*". Începând cu versiunea
5.2.5 în loc de a emite o preîntâmpinare, funcția
glob()
va întoarce false
când restricțiile
openbase_dir
sunt încălcate.