Vzhľadom k blížiacemu sa konci aktívnej podpory verzii php 5.6 a 7.0 je dobré poznať, ktoré funkčnosti budú označené varovaním E_DEPRECATED alebo E_NOTICE (odstránené budú vo verzii 8.0).
Od použitia funkcie __autoload sa v dokumentácii odrádza už od verzie php 5.1, kedy bola nahradená funkciou spl_autoload_register(). Jednou z hlavných výhod spl_autoload_register() je schopnosť poskytovať viacnásobné reťazové autoloadery, čím sa uľahčuje interoperabilita knižníc (vzájomná komunikácia medzi knižnicami).
function __autoload($className) {
include $className.'.php';
}
mala by byť nahradená volaním:
spl_autoload_register(function($className) {
include $className.'.php';
});
Premenná $php_errormsg je vytváraná vždy v lokálnom kontexte, v prípade:
Správanie premennej $php_errormsg je veľmi magické…
Mala by byť nahradená používaním funkcie error_get_last(), ktorá poskytuje čistejší spǒsob zisťovania poslednej chyby.
Funkcia create_function() je v podstate “wraperom” nad funkciou eval() a preto by od verzie php 5.3 mala byť nahrádzaná využívaním lambda funkcii.
create_function('$a, $b', 'return strlen($b) - strlen($a);');
mala by byť nahradená volaním:
function($a, $b) {
return strlen($b) - strlen($a);
});
Používanie výrazu (unset) je považovaný za zbytočný, jeho správanie je považované za zmätočné, kedže vačšina ľudi predpokladá, že jej správanie bude podobné ako pri funkcii unset(), čo ale v skutočnosti nieje pravda…
V prípade funkcie parse_str() je doporučené používať druhý argument funkcie. Používanie tejto funkcie bez druhého argumentu predstavuje závažné bezpečnostné riziko.
Od verzie php 5.6 sa doporučuje používať funkcie gmp_random_bits() a gmp_random_range(), ktoré umožňujú presnú kontrolu nad používaným rozsahom náhodných čísel. Tieto funkcie by mali byť vždy uprednostňované pred gmp_random().
gmp_random();
mala by byť nahradená volaním:
gmp_random_range($min, $max); // or
gmp_random_bits($bits);
each() funkcia sa používa/la na iteráciu polí, podobne ako foreach. Je však horšia vo všetkých ohľadoch, je 10 krát pomalšia a predstavuje problémy s výkonom.
while (list($key, $val) = each($array)) {
echo $key.' => '.$val.'<br />';
}
mala by byť nahradená volaním:
foreach ($array as $key => $value) {
echo $key.' => '.$val.'<br />';
}
Použitie argumentu typu reťazec ako asertácie je DEPRECATED od verzie PHP 7.2 (z dôvodu “remote code execution”).