Hoʻokuʻu ʻia ka ʻōlelo papahana PHP 8.1

Ma hope o hoʻokahi makahiki o ka hoʻomohala ʻana, ua hōʻike ʻia ka hoʻokuʻu ʻana o ka PHP 8.1 programming language. Aia ka lālā hou i nā ʻano hiʻohiʻona hou, a me kekahi mau hoʻololi e uhaki i ka hoʻohālikelike.

Nā hoʻomaikaʻi koʻikoʻi ma PHP 8.1:

  • Hoʻohui i ke kākoʻo no ka helu ʻana, no ka laʻana, hiki iā ʻoe ke hoʻohana i kēia mau mea kūkulu: enum Status { case Pending; hihia Active; hihia Archived; } class Post { ka hana lehulehu __construct( Kūlana kūʻokoʻa $ kūlana = Kūlana:: Ke kali nei; ) {} hana lehulehu setStatus(Status $ kūlana): void { // … } } $post->setStatus(Status::Active);
  • Hoʻohui i ke kākoʻo no nā kaula māmā i kapa ʻia ʻo Fibers, e ʻae iā ʻoe e hoʻokele i nā kaula hoʻokō ma kahi haʻahaʻa. Hoʻolālā ʻia ke kākoʻo Fiber e hoʻohui ʻia i nā frameworks Amphp a me ReactPHP. $fiber = Fiber hou(hana (): void {$valueAfterResuming = Fiber:: suspend('ma hope o ka hoʻomaha'); // ... }); $valueAfterSuspending = $fiber->hoomaka(); $fiber->resume('ma hope o ka hoʻomaka ʻana');
  • Ua hoʻomaikaʻi ʻia ka hoʻokō ʻana i ka cache code object (opcache), e hiki ai ke hūnā i ka ʻike e pili ana i ka hoʻoilina papa. Ua hiki i ka Optimization ke hoʻonui i ka hana o kekahi mau noi e 5-8%. ʻO nā koho ʻē aʻe e pili ana i ka optimization o ka hana JIT, ka hoʻokō ʻana i ke kākoʻo JIT no ka hoʻolālā ARM64 (AArch64), ka wikiwiki o ka hoʻonā inoa, ka hoʻonui ʻana i ka timelib a me nā hale waihona ext/date, hoʻonui i ka serialization a me ka hana deserialization, optimization o ka get_declared_classes (), explode () , strtr() hana, strnatcmp(), dechex(). Ma keʻano laulā, aia kahi hoʻonui 23.0% i ka hana no Symfony Demo, a me 3.5% no WordPress.
  • Ua hoʻonui ʻia ka mea hoʻohana wehe ʻana i loko o nā ʻāpana "...$var", e hiki ai ke hoʻololi i nā arrays i ka wā e wehewehe ai i kahi ʻano hou, ua hoʻolōʻihi ʻia e kākoʻo i nā kī kaula (ua kākoʻo ʻia nā mea hōʻike kikohoʻe ma mua). No ka laʻana, hiki iā ʻoe ke hoʻohana i ke code: $array1 = [“a” => 1]; $array2 = ["b" => 2]; $array = [“a” => 0, …$array1, …$array2]; var_dump($array); // ["a" => 1, "b" => 2]
  • Ua ʻae ʻia e hoʻohana i ka huaʻōlelo "hou" i nā mea hoʻomaka, e like me ka wehewehe ʻana i ka hana ma ke ʻano he paʻamau a i ʻole i nā ʻano hoʻopaʻapaʻa. papa MyController { hana lehulehu __construct( Logger pilikino $logger = NullLogger hou (), ) {} }
  • Hiki ke kaha i ka waiwai o ka papa no ka heluhelu-wale wale no (hiki ke kakau wale ia ka ike ma ia mau waiwai, a mahope iho aole e loaa no ka hoololi). class PostData { hana lehulehu __construct( lehulehu heluhelu wale no string $title, lehulehu heluhelu DateTimeImmutable $date, ) {} } $post = hou Post('Title', /* … */); $post->title = 'Okoa'; > Hapa: ʻAʻole hiki ke hoʻololi i ka waiwai heluhelu wale nō Post::$title
  • Ua hoʻokō ʻia kahi syntax hou no nā mea hiki ke kāhea ʻia - hiki ke hana ʻia kahi pani ʻana ma ke kāhea ʻana i kahi hana a hāʻawi i ka waiwai "..." ma ke ʻano he hoʻopaʻapaʻa (ʻo ia hoʻi myFunc(...) ma kahi o Closure::fromCallable('myFunc ')): hana foo (int $a, int $b) { /* … */ } $foo = foo(…); $foo(a: 1, b: 2);
  • Hoʻohui i ke kākoʻo piha no nā ʻano intersection, e ʻae iā ʻoe e hana i nā ʻano hou ma ka hoʻohui ʻana i nā mea i loaʻa. ʻAʻole like me nā ʻano union, e wehewehe ana i nā hōʻiliʻili o ʻelua a ʻoi aku paha nā ʻano, pono nā ʻano intersection i ke ʻano o nā ʻano i helu ʻia, akā e hoʻopiha ʻia nā ʻano āpau i kuhikuhi ʻia i ka hoʻonohonoho. hana generateSlug(HasTitle&HasId $post) { return strtolower ($post->getTitle()) . $post->getId(); }
  • Aia kekahi ʻano hou "ʻaʻole loa" hiki ke hoʻohana ʻia no ka hoʻomaopopo ʻana i nā mea loiloi static e hoʻopau kahi hana i ka hoʻokō ʻana o ka papahana, no ka laʻana ma ka hoʻolei ʻana i kahi ʻokoʻa a i ʻole ka hoʻokō ʻana i ka hana puka. hana dd(mixed $input): ʻaʻole loa { puka; }
  • Ua noi ʻia kahi hana hou array_is_list, kahi e hiki ai iā ʻoe ke hoʻoholo ua hoʻonohonoho ʻia nā kī i loko o ke ʻano e hoʻonui ai i nā waiwai helu, e hoʻomaka ana mai 0: $list = [“a”, “b”, “c”]; array_is_list ($list); // oiaio $notAList = [1 => “a”, 2 => “b”, 3 => “c”]; array_is_list ($notAList); // false $alsoNotAList = ["a" => "a", "b" => "b", "c" => "c"]; array_is_list ($alsoNotAList); // wahahee
  • I kēia manawa hiki iā ʻoe ke hoʻohana i ka huaʻōlelo "hope" e pale ai i ka hoʻopaʻa ʻia ʻana o nā papa makua. class Foo { final public const X = "foo"; } hoʻonui ka papa papa iā Foo { public const X = "bar"; > Hewa make: Bar::X ʻaʻole hiki ke hoʻopau i ka Foo mau::X }
  • Manaʻo ʻia nā hana fsync a me fdatasync e hoʻoikaika i nā loli e mālama ʻia mai ka cache disk. $file = fopen("sample.txt", "w"); fwrite($file, "Kekahi mau mea"); inā (fsync ($ faila)) { echo "Ua hoʻomau maikaʻi ʻia ka faila i ka disk."; } flose($file);
  • Hoʻohui i ka hiki ke hoʻohana i nā prefixes "0o" a me "0O" no nā helu octal, ma kahi o ka prefix i hoʻohana mua ʻia "0". 016 === 0o16; // oiaio 016 === 0O16; // ʻoiaʻiʻo
  • Manaʻo ʻia e hoʻokaʻawale i ka hoʻohana ʻana o $GLOBALS, e alakaʻi ai i ka hōʻino ʻana i ka hoʻohālikelike ʻana i hope, akā e hiki ai ke wikiwiki i nā hana me nā arrays. No ka laʻana, ke noʻonoʻo ʻia nei ka hiki ke hoʻopau i ke kākau ʻana iā $GLOBALS a me ka hāʻawi ʻana i $GLOBALS ma ke kuhikuhi. Ua hōʻike ʻia kahi loiloi o 2000 pūʻolo he 23 wale nō o lākou e hoʻopilikia ʻia e kēia hoʻololi. No ka laʻana, inā ʻae ʻia ka manaʻo, ʻaʻole e kākoʻo hou ʻo 8.1 i nā ʻōlelo e like me: $GLOBALS = []; $GLOBALS += []; $GLOBALS =& $x; $x =& $ ALOHA; unset ($ GLOBALS); by_ref ($ GLOBALS);
  • Pono e hoʻihoʻi nā ʻano hana kūloko i ke ʻano kūpono. Ma PHP 8.1, e hoʻihoʻi i kahi ʻano like ʻole me ka ʻōlelo hoʻolaha hana e hoʻopuka i kahi ʻōlelo aʻo, akā ma PHP 9.0 e hoʻololi ʻia ka ʻōlelo aʻo me kahi hewa.
  • Ua hoʻomau ka hana ma ka hoʻololi ʻana i nā hana mai ka hoʻohana ʻana i nā kumuwaiwai i ka hoʻopunipuni ʻana i nā mea. Ua hoʻoili ʻia nā hana fifo_* a me imap_* i nā mea.
  • ʻO ka hāʻawi ʻana i nā waiwai null ma ke ʻano he hoʻopaʻapaʻa i nā hana kūloko i hōʻailona ʻia ʻaʻole-nullable ua hoʻopau ʻia. Ma PHP 8.1, e hoʻohana ana i nā hana like str_contains("string", null) e alakaʻi i kahi ʻōlelo aʻo, a ma PHP 9 i kahi hewa.
  • Hoʻohui kākoʻo no MurmurHash3 a me xxHash hashing algorithms.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka