PHP 7.4 Programméiersprooch Verëffentlechung

No engem Joer vun Entwécklung presentéiert Programméierungssprooch Verëffentlechung PHP 7.4. Déi nei Branche enthält eng Serie vun neie Fonctiounen, souwéi e puer Ännerungen déi d'Kompatibilitéit briechen.

Schlëssel Verbesserungen an PHP 7.4:

  • Typen Properties - Klass Eegeschafte kënnen elo Typdeklaratioune enthalen, zum Beispill:

    class Benotzer {
    ëffentlechen int $id;
    ëffentlech String $name;
    }

  • Ofkierzung Syntax fir d'Definitioun vu Funktiounen "fn (parameter_list) => expr" mat Ëmfangverbindung duerch Wäert. Zum Beispill, "fn ($ x) => $ x + $ y" ass analog zu "$ fn2 = Funktioun ($ x) benotzen ($ y) {zréckkomm $ x + $ y;}");
  • Shorthand Aufgab Bedreiwer "??=" dee ka benotzt ginn fir e Standardwäert ze definéieren ("a ??= b" ass ähnlech wéi "a = a ?? b", wann "a" definéiert ass, gëtt säi Wäert gespäichert, a wann et net definéiert ass gëtt de Wäert "b" zougewisen);
  • Limitéiert Geleeënheet d'Erhaalung vun der Ierfhierarchie vun Typen an ofgeleeten Retourtypen, oder d'Fäegkeet fir d'Hierarchie vun den ursprénglechen Typen an ofgeleeten Argumenttypen ëmzedréien (Kovarianz zréck Typ an Argument Typ contravariance). Déi folgend Konstruktioune kënnen elo a PHP benotzt ginn:

    Klass A {}
    Klass B verlängert A {}

    Klass Produzent {
    ëffentlech Funktioun Method (): A {}
    }
    class ChildProducer verlängert Produzent {
    ëffentlech Funktioun Method (): B {}
    }

  • Auspacken Bedreiwer bannent Arrays "...$var", erlaabt Ersatz vun existente Arrays ausféieren wann Dir en neit Array definéiert;

    $parts = ['Apple', 'Birnen'];
    $fruits = ['Bananen', 'Orange', ...$Deeler, 'Waassermeloun'];
    // ['Bananen', 'Orange', 'Apfel', 'Birnen', 'Waassermeloun'];

  • Geleeënheet visuell Representatioun vu groussen Zuelen mat Ofgrenzer an numeresche Literaten (1_000_000_00);
  • Ënnerstëtzung schwaach Linken, déi Iech erlaabt eng Referenz op en Objet ze halen, awer blockéiert den Dreckstipp net fir den assoziéierten Objet ze läschen;
  • Nei Mechanismus Objet serialization (eng Kombinatioun vun Serializable an __sleep () / __wakeup ()), déi ersat der Serializable Interface, déi wäert deprecated;

    // Gëtt eng Array zréck, déi all Staate vum Objet enthält;
    ëffentlech Funktioun __serialize (): Array;

    // Restauréiert den Zoustand vun engem Objet aus enger Array
    ëffentlech Funktioun __unserialize (Array $ Donnéeën): ongëlteg;

  • Erlaabt Ausnahmen vun enger Method ze geheien __toString();
  • Ënnerstëtzung bäigefüügt fir den Objektcode-Cache vir ze lueden. Zousätzlech Parameter fir Astellung
    opcache.preload, duerch deen Dir e PHP Skript spezifizéiere kënnt, deen kompiléiert a lafen wann de Server ufänkt. Dëse Skript kann den Opcode vun anere Dateien duerch hir direkt Inklusioun lueden oder d'Funktioun opcache_compile_file () benotzen;

  • Crc32c Funktioun an der Hash Extensioun bäigefüügt fir Kontrollsumme mat dem Castagnoli Polynomial ze berechnen;
  • Zousätzlech Ënnerstëtzung fir d'passwuert_hash () Funktioun fir Passwuert-Hashingmethoden argon2i an argin2id, an der Ëmsetzung vun der Natriumbibliothéik, wann PHP ouni Libargon gebaut ass;
  • Dobäi Funktioun mb_str_split (), ähnlech ze str_split (), awer operéiert net mat Bytes mee mat Charakter Positiounen an engem Multi-Byte String;
  • D'Strip_tags () Funktioun huet elo d'Fäegkeet fir en Array mat Tagnamen ze passéieren, d.h. amplaz strip_tags ($str, ' ') kënnt Dir elo strip_tags spezifizéieren ($str, ['a', 'p']);
  • proc_open () erlaabt d'Operanden an enger Array ze lëschten anstatt eng String ze lafen, an et bitt och Thread Viruleedung an Ënnerstëtzung fir en Null Datei Descriptor;

    proc_open(['php', '-r', 'echo "Hallo Welt\n";'], $descriptors, $pipes);

    // Wéi 2>&1 an der Shell
    proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['Redirect', 1]], $pipes);

    // wéi 2>/dev/null oder 2>nul an der Shell
    proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['null']], $pipes);

  • Firebird / Interbase, Recode an WDDX Extensiounen sinn aus der Basis Verdeelung ausgeschloss. Dës Verlängerunge ginn elo iwwer PECL verdeelt;
  • Iwwerginn op Kategorie veroudert Features wéi nestéiert ternär Betreiber ouni Klammern, Zougang zu Array-Elementer a Strings mat gekrauselten Klameren ("$var{$idx}"), d'Funktion is_real () a Casting op real, mat Hëllef vum Elterendeel Schlësselwuert ouni Elterenklass, Parameter allow_url_include Konfiguratiounen , benotzt array_key_exists () op Objeten.

    D'Funktiounen get_magic_quotes_gpc(), get_magic_quotes_runtime(), an
    hebrevc(), convert_cyr_string(), money_format(), ezmlm_hash(), restore_include_path(), ldap_control_paged_result_response(), ldap_control_paged_result(), ReflectionType::__toString().

    Eng Warnung iwwer d'Benotzung vun enger eelerer Feature gouf geliwwert wann Dir probéiert falsch Symboler a Funktiounen ze veraarbechten
    base_convert (), bindec (), octdec () an hexdec (), a wann Dir eng Net-String Muster an mb_ereg_replace uginn ().

Source: opennet.ru

Setzt e Commentaire