PHP 7.4 programmeringssprÄk release

Efter ett Är av utveckling presenteras programsprÄk release PHP 7.4Den nya grenen innehÄller ett antal nya funktioner, sÄvÀl som flera kompatibilitetsbrytande förÀndringar.

Nyckel förbÀttringar i PHP 7.4:

  • Typade egenskaper - klassegenskaper kan nu inkludera typdeklarationer, till exempel:

    klassAnvÀndare {
    offentlig int $id;
    offentlig strÀng $namn;
    }

  • Förkortad funktionsdefinitionssyntax "fn(parameter_list) => expr" med scope-bindning efter vĂ€rde. Till exempel Ă€r "fn($x) => $x + $y" analogt med "$fn2 = function ($x) use ($y) {return $x + $y;}");
  • Stenografisk tilldelningsoperator "??=", vilket kan anvĂ€ndas för att definiera ett standardvĂ€rde ("a ??= b" liknar "a = a ?? b", om "a" Ă€r definierat bevaras dess vĂ€rde, och om det inte Ă€r definierat tilldelas vĂ€rdet för "b");
  • BegrĂ€nsad möjlighet bevarandet av arvshierarkin för typer i de typer av returvĂ€rden som hĂ€rrör frĂ„n dem eller möjligheten att omvandla hierarkin för ursprungliga typer till motsatsen i de hĂ€rledda typerna av argument (kovarians returtyp och argumenttypkontravarians). Följande konstruktioner kan nu anvĂ€ndas i PHP:

    klass A
    klass B utökar A {}

    klass Producent {
    public function-metod(): A {}
    }
    klass ChildProducer utökar Producer {
    public function-metod(): B {}
    }

  • Packar upp operatorn inuti arrayer "...$var", tillĂ„ter utföra substitution av befintliga arrayer nĂ€r en ny array definieras;

    $delar = ['Àpple', 'pÀron'];
    $frukter = ['banan', 'apelsin', 
$delar, 'vattenmelon'];
    // ['banan', 'apelsin', 'Àpple', 'pÀron', 'vattenmelon'];

  • Möjlighet visuell presentation av stora tal med avgrĂ€nsare i numeriska literaler (1_000_000_00);
  • Support svaga lĂ€nkar, som lĂ„ter dig bevara en referens till ett objekt, men inte blockerar borttagningen av det associerade objektet av sophĂ€mtaren;
  • Nytt mekanism objektserialisering (en kombination av Serializable och __sleep()/__wakeup()), som ersĂ€tter Serializable-grĂ€nssnittet, vilket kommer att förklaras förĂ„ldrat;

    // Returnerar en array som innehÄller objektets alla tillstÄnd;
    offentlig funktion __serialisera(): array;

    // ÅterstĂ€ller tillstĂ„ndet för ett objekt frĂ„n en array
    public function __unserialize(array $data): void;

  • TillĂ„tet att kasta undantag frĂ„n metoden __att strĂ€nga();
  • Lade till stöd för förladdning av objektkodscachen. En parameter har lagts till för konfiguration.
    opcache.preload, genom vilket du kan ange ett PHP-skript som ska kompileras och startas nÀr servern startar. Detta skript kan ladda opkoden för andra filer genom att de inkluderas direkt eller genom att anvÀnda funktionen opcache_compile_file();
  • Hash-tillĂ€gget har en ny crc32c-funktion för att berĂ€kna kontrollsummor med hjĂ€lp av Castagnoli-polynomet;
  • Funktionen password_hash() har uppdaterats för att stödja lösenordshashningsmetoderna argon2i och argin2id i Sodium-biblioteksimplementeringen om PHP byggs utan libargon;
  • Lade till funktionen mb_str_split(), liknande str_split(), men arbetar inte pĂ„ byte utan pĂ„ teckenpositioner i en strĂ€ng med flera byte;
  • Funktionen strip_tags() har nu möjligheten att skicka en array med taggnamn, d.v.s. istĂ€llet för strip_tags($str, ' ') kan du nu ange strip_tags($str, ['a', 'p']);
  • proc_open() tillĂ„ter lista av operander i en array istĂ€llet för att ange en strĂ€ng som ska köras, och implementerar Ă€ven möjligheten att omdirigera strömmar och stödja en null-fildeskriptor;

    proc_open(['php', '-r', 'echo "Hej vÀrlden\n";'], $descriptors, $pipes);

    // Som 2>&1 i skalet
    proc_open($cmd, [1 => ['pipe', 'w'], 2 => ['omdirigera', 1]], $pipes);

    // som 2>/dev/null eller 2>nul i skalet
    proc_open($cmd, [1 => ['rör', 'w'], 2 => ['null']], $rör);

  • Firebird/Interbase, Recode och WDDX-tillĂ€ggen har tagits bort frĂ„n basdistributionen. Dessa tillĂ€gg distribueras nu via PECL;
  • Överförd till kategorin förĂ„ldrad Funktioner som kapslade ternĂ€ra operatorer utan parenteser, Ă„tkomst till arrayelement och strĂ€ngar med hjĂ€lp av klammerparenteser ("$var{$idx}"), funktionen is_real() och konvertering till real, anvĂ€ndning av nyckelordet parent utan en förĂ€lderklass, konfigurationsalternativet allow_url_include och anvĂ€ndning av array_key_exists() pĂ„ objekt.

    Funktionerna get_magic_quotes_gpc(), get_magic_quotes_runtime() har förÄldrats.
    hebrevc(), convert_cyr_string(), money_format(), ezmlm_hash(), restore_include_path(), ldap_control_paged_result_response(), ldap_control_paged_result(), ReflectionType::__toString().

    Varning om anvÀndning av förÄldrad funktion vid försök att bearbeta ogiltiga tecken i funktioner har tillhandahÄllits.
    base_convert(), bindec(), octdec() och hexdec(), och nÀr man anger ett icke-strÀngmönster i mb_ereg_replace().

KĂ€lla: opennet.ru

Köp pĂ„litlig hosting för webbplatser med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster