A prova beta di PHP 8 hΓ  iniziatu

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

menu innovazioni PHP 8:

  • Accendendu compilatore JIT, l'usu di quale migliurΓ  a produtividade.
  • sustegnu ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π²Π°Ρ‚ΡŒ Π² Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ значСния Π² привязкС ΠΊ ΠΈΠΌΠ΅Π½Π°ΠΌ, Ρ‚.Π΅. ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹ Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½ΠΎΠΌ порядкС ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹. НапримСр, Β«array_fill(start_index: 0, num: 100, value: 50)Β».
  • ΠŸΡ€ΠΈ Π²Ρ‹Π·ΠΎΠ²Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² permessu ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Β«?Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Π·ΠΎΠ² Ρ‚ΠΎΠ»ΡŒΠΊΠΎ, Ссли ΠΌΠ΅Ρ‚ΠΎΠ΄ присутствуСт, Ρ‡Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π»ΠΈΡˆΠ½ΠΈΡ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΠΊ Π½Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ значСния Β«nullΒ». НапримСр, Β«$dateAsString = $booking->getStartDate()?->asDateTimeString()Β»;
  • sustegnu tipi di unioni, chΓ¬ definisce cullezzione di dui o piΓΉ tipi (per esempiu, "funzione publica foo(Foo|Bar $input): int|float;").
  • sustegnu attributi (annotazioni) chΓ¬ permettenu di ligΓ  i metadati (cum'Γ¨ l'infurmazioni di tipu) Γ  e classi senza aduprΓ  a sintassi Docblock.
  • ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ scintilla, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ switch ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ значСния, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ условий, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ строгоС сравнСниС Ρ‚ΠΈΠΏΠΎΠ² ΠΈ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ указания Β«breakΒ».

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

  • Sintaxi accurtata definizione di classi, chΓ¬ vi permette di cumminΓ  a definizione di un constructore Γ¨ e proprietΓ .
  • novu tipu di ritornu - static.
  • novu tipu - mixte, chΓ¬ pΓ² esse usatu per stabilisce se una funzione accetta parΓ metri di diversi tipi.
  • Spressione graputi per trattΓ  l'eccezzioni.
  • WeakMap per creΓ  oggetti chΓ¬ ponu esse sacrificati durante a cullizzioni di basura (per esempiu, per almacenΓ  cache innecessarii).
  • uppurtunitΓ  usendu l'espressione "::class" per l'uggetti (analogicu Γ  chjamΓ  get_class()).
  • uppurtunitΓ  definizioni in u bloccu di catch di eccezzioni chΓ¬ ΓΉn sΓ² micca ligati Γ  variΓ bili.
  • uppurtunitΓ  lassannu una virgola dopu Γ  l'ultimu elementu in a lista di i parΓ metri di funzione.
  • Nova interfaccia Stringable per identificΓ  ogni tipu di stringa o dati chΓ¬ ponu esse cunvertiti in una stringa (per quale u metudu __toString() hΓ¨ dispunibule).
  • Nova funzione str_contains(), un analogu simplificatu di strpos per determinΓ  l'occurrence di una substringa, Γ¨ ancu e funzioni str_starts_with () Γ¨ str_ends_with () per verificΓ  e partite Γ  l'iniziu Γ¨ a fine di una stringa.
  • Funzione aghjuntu fdiv(), chΓ¬ rializeghja una operazione di divisione senza scacciΓ  un errore quandu si divide per zero.
  • Cambiatu una logica di stringa. Per esempiu, l'espressione 'echo "sum:" . $a + $b' era prima interpretatu cum'Γ¨ "echo ("sum: " . $a) + $b', Γ¨ in PHP 8 serΓ  trattatu cum'Γ¨ "echo "sum: " . ($a + $b)'.
  • Strettu cuntrollΓ  l'operazioni aritmetiche Γ¨ di bit, per esempiu, l'espressioni "[] % [42]" Γ¨ "$object + 4" seranu un errore.
  • Implementatu un algoritmu di classificazione stabile in quale l'ordine di i valori identichi hΓ¨ cunservatu in diverse corse.
  • Source: opennet.ru

Add a comment