L-ittestjar beta tal-PHP 8 beda

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

Il-prinċipali innovazzjonijiet PHP 8:

  • Inklużjoni kompilatur JIT, li l-użu tiegħu se jtejjeb il-produttività.
  • Appoġġ именованных аргументов функций, позволяющих передававать в функцию значения в привязке к именам, т.е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы. Например, «array_fill(start_index: 0, num: 100, value: 50)».
  • При вызове методов permess применение оператора «?», который позволяет инициировать вызов только, если метод присутствует, что позволяет избежать лишних проверок на возврат значения «null». Например, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
  • Appoġġ tipi ta' unjoni, li tiddefinixxi kollezzjonijiet ta' żewġ tipi jew aktar (per eżempju, “public function foo(Foo|Bar $input): int|float;”).
  • Appoġġ attributi (annotazzjonijiet) li jippermettulek torbot metadata (bħal informazzjoni tat-tip) ma' klassijiet mingħajr ma tuża s-sintassi ta' Docblock.
  • Поддержка выражений jaqblu, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания «break».

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

  • Sintassi mqassra definizzjonijiet tal-klassi, li jippermettulek tgħaqqad id-definizzjoni ta 'kostruttur u proprjetajiet.
  • Tip ta' ritorn ġdid - statiku.
  • Tip ġdid - mħallta, li jista 'jintuża biex jiddetermina jekk funzjoni taċċettax parametri ta' tipi differenti.
  • Espressjoni tarmi biex jimmaniġġaw eċċezzjonijiet.
  • WeakMap biex jinħolqu oġġetti li jistgħu jiġu sagrifikati waqt il-ġbir taż-żibel (per eżempju, biex jinħażnu caches mhux meħtieġa).
  • Opportunità bl-użu tal-espressjoni “::class” għall-oġġetti (analogu għas-sejħa get_class()).
  • Opportunità definizzjonijiet fil-blokk tal-qbid ta’ eċċezzjonijiet li mhumiex marbuta ma’ varjabbli.
  • Opportunità li tħalli virgola wara l-aħħar element fil-lista tal-parametri tal-funzjoni.
  • Interfaċċa ġdida Stringable biex tidentifika kwalunkwe tip ta' string jew data li tista' tiġi kkonvertita fi string (li għaliha l-metodu __toString() huwa disponibbli).
  • Karatteristika ġdida str_contains(), analogu simplifikat ta 'strpos għad-determinazzjoni tal-okkorrenza ta' substring, kif ukoll il-funzjonijiet str_starts_with() u str_ends_with() għall-iċċekkjar ta 'logħbiet fil-bidu u fit-tmiem ta' string.
  • Funzjoni miżjuda fdiv(), li twettaq operazzjoni ta 'diviżjoni mingħajr ma tarmi żball meta tiddividi b'żero.
  • Mibdul loġika li tgħaqqad is-sekwenza. Pereżempju, l-espressjoni 'echo "somma:" . $a + $b' qabel kien interpretat bħala 'echo ("somma: " . $a) + $b', u f'PHP 8 se jiġi ttrattat bħala "echo "somma: " . ($a + $b)'.
  • Issikkat l-iċċekkjar ta' operazzjonijiet aritmetiċi u bit, pereżempju, l-espressjonijiet "[] % [42]" u "$object + 4" se jirriżultaw fi żball.
  • Implimentati algoritmu ta’ għażla stabbli li fih l-ordni ta’ valuri identiċi tiġi ppreservata f’ġirjiet differenti.
  • Sors: opennet.ru

Żid kumment