Ir sākusies PHP 8 beta testēšana

Iesniedzis первый бета-выпуск новой ветки языка программирования PHP 8. Релиз намечен на 26 ноября. Одновременно сформированы корректирующие выпуски PHP 7.4.9, 7.3.21 и
7.2.33, в которых устранены накопившиеся ошибки и уязвимости.

Galvenais jauninājumiem PHP 8:

  • Iespējot JIT kompilators, kuru izmantošana uzlabos produktivitāti.
  • atbalsts именованных аргументов функций, позволяющих передававать в функцию значения в привязке к именам, т.е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы. Например, «array_fill(start_index: 0, num: 100, value: 50)».
  • При вызове методов atļauta применение оператора «?», который позволяет инициировать вызов только, если метод присутствует, что позволяет избежать лишних проверок на возврат значения «null». Например, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
  • atbalsts arodbiedrību veidi, definējot divu vai vairāku veidu kolekcijas (piemēram, “publiskā funkcija foo(Foo|Bar $input): int|float;”).
  • atbalsts atribūti (anotācijas), kas ļauj saistīt metadatus (piemēram, tipa informāciju) klasēm, neizmantojot Docblock sintaksi.
  • Поддержка выражений spēles, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания «break».

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

  • Saīsināta sintakse klašu definīcijas, ļaujot apvienot konstruktora definīciju un īpašības.
  • Jauns atgriešanas veids - statisks.
  • Jauns tips - sajaukts, ko var izmantot, lai noteiktu, vai funkcija pieņem dažāda veida parametrus.
  • Izteiksme mest rīkoties ar izņēmumiem.
  • Vāja karte lai izveidotu objektus, kurus var upurēt atkritumu savākšanas laikā (piemēram, lai uzglabātu nevajadzīgas kešatmiņas).
  • Iespēja izmantojot izteiksmi “::class” objektiem (analogs get_class() izsaukšanai).
  • Iespēja definīcijas izņēmumu nozvejas blokā, kas nav saistīti ar mainīgajiem.
  • Iespēja aiz pēdējā elementa funkcijas parametru sarakstā atstājot komatu.
  • Jauns interfeiss Stingrs lai identificētu visus virkņu veidus vai datus, ko var pārvērst virknē (kurai ir pieejama metode __toString()).
  • Jauna funkcija str_contains(), vienkāršots strpos analogs apakšvirknes rašanās noteikšanai, kā arī funkcijas str_starts_with() un str_ends_with(), lai pārbaudītu atbilstību virknes sākumā un beigās.
  • Pievienota funkcija fdiv(), kas veic dalīšanas darbību, neizmetot kļūdu dalot ar nulli.
  • Mainīts virkņu savienošanas loģika. Piemēram, izteiciens 'echo "sum:" . $a + $b' iepriekš tika interpretēts kā 'echo ("sum: " . $a) + $b', un PHP 8 tiks uzskatīts par "echo "sum: " . ($a + $b)”.
  • Savilkts pārbaudot aritmētiskās un bitu darbības, piemēram, izteicieni "[] % [42]" un "$object + 4" radīs kļūdu.
  • Īstenots stabils šķirošanas algoritms, kurā identisku vērtību secība tiek saglabāta dažādos palaijumos.
  • Avots: opennet.ru

Pievieno komentāru