Beta-testen fan PHP 8 is begon

Yntrodusearre ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π΅Ρ‚Π°-выпуск Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ языка программирования PHP 8. Π Π΅Π»ΠΈΠ· Π½Π°ΠΌΠ΅Ρ‡Π΅Π½ Π½Π° 26 ноября. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ сформированы ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ выпуски PHP 7.4.9, 7.3.21 ΠΈ
7.2.33, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… устранСны накопившиСся ошибки ΠΈ уязвимости.

haad ynnovaasjes PHP 8:

  • YnklΓΊzje JIT kompilator, wΓͺrfan it gebrΓ»k de produktiviteit ferbetterje sil.
  • stipe ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π²Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ значСния Π² привязкС ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ, Ρ‚.Π΅. ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. НапримСр, Β«array_fill(start_index: 0, num: 100, value: 50)Β».
  • ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² tastien ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Β«?Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ присутствуСт, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ значСния Β«nullΒ». НапримСр, Β«$dateAsString = $booking->getStartDate()?->asDateTimeString()Β»;
  • stipe union typen, it definiearjen fan kolleksjes fan twa of mear soarten (bygelyks "publike funksje foo(Foo|Bar $ynput): int|float;").
  • stipe attributen (annotaasjes) wΓͺrtroch jo metadata (lykas typeynformaasje) kinne bine oan klassen sΓ»nder Docblock-syntaksis te brΓ»ken.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ wedstriid, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ switch ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ значСния, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ условий, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ строгоС сравнСниС Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ указания Β«breakΒ».

    $result = match($input) {
    0 => Β«helloΒ»,
    β€˜1’, β€˜2’, β€˜3’ => Β«worldΒ»,
    };

  • Ferkoarte syntaksis klasse definysjes, sadat jo kombinearje de definysje fan in constructor en eigenskippen.
  • Nije return type - statyske.
  • Nij type - mingd, dat kin brΓ»kt wurde om te bepalen oft in funksje akseptearret parameters fan ferskillende soarten.
  • Utdrukking goaie om ΓΊtsΓ»nderingen te behanneljen.
  • WeakMap om objekten te meitsjen dy't by jiskefet opofferje kinne (bygelyks om Γ»nnedige caches op te slaan).
  • kΓ’ns mei help fan de ΓΊtdrukking ":: klasse" foar objekten (analooch oan calling get_class ()).
  • kΓ’ns definysjes yn it fangen blok fan ΓΊtsΓ»nderings dy't net bΓ»n oan fariabelen.
  • kΓ’ns in komma litte nei it lΓͺste elemint yn 'e list mei funksjeparameters.
  • Nije ynterface Stringable om stringtypen of gegevens te identifisearjen dy't kinne wurde omboud ta in tekenrige (wΓͺrfoar de metoade __toString() beskikber is).
  • Nije funksje str_contains(), in ferienfΓ’ldige analoog fan strpos foar it bepalen fan it foarkommen fan in substring, en ek de funksjes str_starts_with() en str_ends_with() foar it kontrolearjen fan oerienkomsten oan it begjin en ein fan in tekenrige.
  • Funksje tafoege fdiv(), dy't in dielingsoperaasje ΓΊtfiert sΓ»nder in flater te smiten by dielen troch nul.
  • Feroare string joining logika. Bygelyks, de ΓΊtdrukking 'echo "som:" . $a + $b' waard earder ynterpretearre as 'echo ("som: ". $a) + $b', en yn PHP 8 wurdt behannele as 'echo "sum: ". ($a + $b)'.
  • Oanstutsen kontrolearjen fan arithmetic en bit operaasjes, bygelyks, de ΓΊtdrukkingen "[] ​​% [42]" en "$ objekt + 4" sil resultearje yn in flater.
  • Implementearre in stabyl sortearjen algoritme wΓͺryn de folchoarder fan identike wearden wurdt bewarre bleaun oer ferskate runs.
  • Boarne: opennet.ru

Add a comment