PHP 8.1 fa'alauiloa gagana fa'apolokalame

Ina ua maeʻa le tausaga o le atinaʻe, na tuʻuina atu le faʻasalalauga o le PHP 8.1 gagana polokalame. O le lala fou e aofia ai se faasologa o foliga fou, faʻapea foʻi ma le tele o suiga e motusia le fetaui.

Fa'aleleia atili ile PHP 8.1:

  • Fa'aopoopo le lagolago mo fa'asologa, mo se fa'ata'ita'iga, e mafai nei ona e fa'aogaina mea nei: enum Tulaga { case Pending; mataupu Active; mataupu Archived; } vasega Fa'asalalau { galuega a le lautele __construct( Tulaga tuma'oti $tulaga = Tulaga::Talia'i; ) {} galuega fa'alaua'itele SetStatus(Tulaga $tulaga): void { // … } } $post->setStatus(Tulaga::Active);
  • Fa'aopoopoina le lagolago mo filo mama e ta'ua o Fibers, lea e mafai ai ona e pulea filo fa'atino i se tulaga maualalo. O lo'o fuafua e fa'aopoopo le lagolago a le fiber i le fa'avae Amphp ma ReactPHP. $fiber = fou Fiber(function (): void {$valueAfterResuming = Fiber::suspend('ina ua uma ona taofia'); // ... }); $valueAfterSuspending = $fiber->amata(); $fiber->resume(‘ina ua uma ona toe faaauau’);
  • O le faʻatinoga o le mea faitino code cache (opcache) ua faʻaleleia, ua mafai ai ona faʻaogaina faʻamatalaga e uiga i le tofi vasega. O le faʻaleleia atili na mafai ai ona faʻateleina le faʻatinoga o nisi o talosaga e 5-8%. O isi fa'ata'ita'iga e aofia ai le fa'asilisiliina o le fa'agaioiga o le JIT, fa'atinoga o le lagolago a le JIT mo le fa'ata'ita'iga ARM64 (AArch64), fa'avavevave o fa'ai'uga o le igoa, fa'asilisiliina o faletusi o le timelib ma ext/date, fa'ateleina le fa'asologa ma le fa'atinoina o le deserialization, fa'asilisiliina o le get_declared_classes(), explode() , strtr() galuega, strnatcmp(), dechex(). I se tulaga lautele, o loʻo i ai se faʻaopoopoga 23.0% i le faʻatinoga mo Symfony Demo, ma le 3.5% mo WordPress.
  • O le fa'apipi'i fa'apipi'i i totonu o fa'asologa "...$var", lea e mafai ai ona suitulaga o fa'asologa o lo'o i ai pe a fa'amalamalamaina se laina fou, ua fa'alauteleina e lagolago ai ki manoa (muamua na'o fa'amatalaga numera na lagolagoina). Mo se faʻataʻitaʻiga, e mafai nei ona e faʻaogaina i le code: $array1 = [“a” => 1]; $array2 = ["b" => 2]; $array = [“a” => 0, …$array1, …$array2]; var_dump($array); // ["a" => 1, "b" => 2]
  • E fa'atagaina le fa'aogaina o le upu "fou" i le amataga, e pei o le fa'auigaina o galuega e pei o se fa'ailoga fa'aletonu po'o uiga o finauga. vasega MyController { galuega a le lautele __fausia( Private Logger $logger = NullLogger (), ) {} }
  • E mafai ona fa'ailoga meatotino a le vasega mo le faitau-na'o avanoa (fa'amatalaga i ia meatotino e na'o le tasi ona tusia, a mae'a ona le avanoa mo suiga). vasega PostData { galuega faitele __construct( faitele faitau na'o manoa $title, faitau lautele DateTimeImmutable $aso, ) {} } $post = fou Post('Suafa', /* … */); $post->title = ‘Isi’; > Sese: E le mafai ona suia na'o meafaitino Post::$title
  • O se syntax fou ua faʻatinoina mo mea e mafai ona faʻaogaina - o se tapuni e mafai nei ona faia e ala i le valaʻau o se galuega ma pasi i ai le tau "..." o se finauga (ie myFunc(...) nai lo le Closure::fromCallable('myFunc ')): galuega foo (int $a, int $b) { /* … */ } $foo = foo(…); $foo(a: 1, b: 2);
  • Faʻaopoopoina le lagolago atoatoa mo ituaiga fesoʻotaʻiga, faʻatagaina oe e fatuina ituaiga fou e ala i le tuʻufaʻatasia o mea o iai. E le pei o ituaiga iuni, o loʻo faʻamatalaina ai le aoina o ni ituaiga se lua pe sili atu, o ituaiga fesoʻotaʻiga e manaʻomia le i ai o se tasi o ituaiga lisi, ae o ituaiga uma o loʻo faʻamaonia i le seti e tatau ona faʻatumu. galuega generateSlug(HasTitle&HasId $post) { toe fo'i strtolower ($post->getTitle()) . $post->getId(); }
  • O loʻo i ai se ituaiga fou "leai lava" e mafai ona faʻaaogaina e faʻailoa ai suʻesuʻega faʻapitoa o le a faʻamutaina e se galuega le faʻatinoina o polokalame, mo se faʻataʻitaʻiga e ala i le lafoina o se tuusaunoaga poʻo le faʻatinoina o le galuega e alu ese ai. galuega dd(faafefiloi $faaofia): aua lava {e alu ese; }
  • O se galuega fou array_is_list ua faʻatulagaina, lea e mafai ai ona e faʻamautinoa o ki i le faʻasologa o loʻo faʻatulagaina i le faasologa o le faʻateleina o tau numera, amata mai le 0: $list = ["a", "b", "c"]; array_is_list($lisi); // moni $notAList = [1 => “a”, 2 => “b”, 3 => “c”]; array_is_list($notALlist); // false $alsoNotAList = ["a" => "a", "b" => "b", "c" => "c"]; array_is_list($alsoNotAList); // sese
  • E mafai nei ona e fa'aogaina le upu "fa'ai'u" e taofia ai le fa'amalo i taimi uma a matua. vasega Foo { final public const X = "foo"; } class Bar fa'alautele Foo { public const X = "bar"; > Fa'alavelave fa'afuase'i: Pa::X e le mafai ona fa'ato'ilaloina fa'auma tumau Foo::X }
  • O galuega a le fsync ma le fdatasync o loʻo tuʻuina atu e faʻamalosia ai suiga e faʻasaoina mai le faʻamaumauga o le disk. $file = fopen("sample.txt", "w"); fwrite($file, "O nisi mea"); if (fsync($file)) { echo "Ua fa'aauau pea le faila i le tisiki."; } flose($faila);
  • Faʻaopoopo le tomai e faʻaaoga ai prefix "0o" ma le "0O" mo numera octal, faʻaopoopo i le faʻaoga muamua "0". 016 === 0o16; // moni 016 === 0O16; // moni
  • O loʻo tuʻuina atu e faʻatapulaʻaina le faʻaogaina o le $GLOBALS, lea o le a taʻitaʻia ai le solia o le fesoʻotaʻiga i tua, ae o le a mafai ai ona faʻavavevave faʻagaioiga ma faʻasologa. Mo se fa'ata'ita'iga, o le avanoa e fa'agata ai le tusitusi i le $GLOBALS ma pasia le $GLOBALS ile fa'ailoga o lo'o mafaufauina. O se auiliiliga o 2000 afifi na faaalia ai e na o le 23 o latou o le a aafia i lenei suiga. Mo se fa'ata'ita'iga, afai e talia le talosaga, 8.1 o le a le toe lagolagoina fa'amatalaga e pei o: $GLOBALS = []; $GLOBALS += []; $GLOBALS =& $x; $x =& $GLOBALS; unset ($ GLOBALS); by_ref ($ GLOBALS);
  • O metotia i totonu e tatau ona toe fa'afo'i le ituaiga sa'o. I le PHP 8.1, o le toe faafoiina o se ituaiga e le fetaui ma le tautinoga o galuega o le a maua ai se lapataiga, ae i le PHP 9.0 o le a suia le lapataiga i se mea sese.
  • Sa fa'aauau pea galuega ile fa'aliliuina o galuega mai le fa'aogaina o punaoa ile fa'aogaina o mea. O galuega o le fifo_* ma le imap_* ua tu'uina atu i mea faitino.
  • O le tu'uina atu o mea taua e fai ma finauga i galuega fa'alotoifale ua fa'ailogaina e le fa'aleaogaina ua fa'ate'aina. I le PHP 8.1, o le faʻaaogaina o mea e pei o str_contains("manoa", null) o le a taʻitaʻia ai se lapataiga, ma ile PHP 9 i se mea sese.
  • Faʻaopoopo le lagolago mo MurmurHash3 ma xxHash hashing algorithms.

puna: opennet.ru

Faaopoopo i ai se faamatalaga