Košík je prázdný

S uvedením nové verze PHP 8 došlo k významným změnám v jazyce, včetně odstranění některých zastaralých funkcí. Tento článek poskytuje přehled těchto odstraněných funkcí a nabízí doporučení, jak je nahradit modernějšími a bezpečnějšími alternativami. Tento přechod je klíčový pro zajištění bezpečnosti, výkonu a kompatibility vašich aplikací s nejnovější verzí PHP.

Odstraněné funkce a jejich náhrady

  • get_magic_quotes_gpc() a get_magic_quotes_runtime()

Původní funkce: Tyto funkce byly navrženy pro automatické escapování (escapování = přidání zpětných lomítek) uživatelských vstupů a byly již dlouho zastaralé kvůli bezpečnostním rizikům, která přinášely.

Náhrada: V PHP 8 byly tyto funkce odstraněny. Doporučuje se používat funkce jako addslashes() nebo mysqli_real_escape_string() pro manuální escapování vstupů, nebo ještě lépe, využívat prepared statements pro databázové dotazy, které automaticky zabezpečí vstupy.

  • create_function()

Původní funkce: create_function() sloužila k vytváření anonymních funkcí (lambda funkcí) v dobách, kdy PHP ještě nepodporovalo anonymní funkce nativně.

Náhrada: PHP nyní plně podporuje anonymní funkce pomocí Closure, takže namísto create_function() byste měli používat standardní syntax pro anonymní funkce, což zlepšuje čitelnost kódu a bezpečnost.

// Starý způsob
$func = create_function('$a', 'return $a + 10;');

// Nový způsob
$func = function($a) { return $a + 10; };
  • each()

Původní funkce: Funkce each() byla používána pro iteraci pole, ale byla neefektivní a její použití bylo považováno za zastaralé.

Náhrada: Použijte moderní foreach cyklus pro iteraci polí, který je efektivnější a lépe čitelný.

// Starý způsob
while (list($key, $value) = each($arr)) {
    // kód
}

// Nový způsob
foreach ($arr as $key => $value) {
    // kód
}
  • The ereg extension (ereg(), eregi(), ereg_replace(), atd.)

Původní funkce: Tato rozšíření byla určena pro práci s regulárními výrazy, ale nebyla kompatibilní s PCRE (Perl Compatible Regular Expressions), které se stalo standardem.

Náhrada: Použijte preg_* funkce, které jsou kompatibilní s PCRE a nabízejí lepší výkon a flexibilitu.

// Starý způsob
$found = ereg('pattern', $string);

// Nový způsob
$found = preg_match('/pattern/', $string);

Odstranění zastaralých funkcí v PHP 8 přináší výzvy pro vývojáře při aktualizaci staršího kódu, ale současně nabízí příležitost pro vylepšení a modernizaci aplikací. Je důležité seznámit se s těmito změnami a přijmout doporučené náhrady pro zajištění kompatibility a využívání nejlepších praktik v nových verzích PHP.