Les proves beta de PHP 8 han començat

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

El principal innovacions PHP 8:

  • Inclusió Compilador JIT, l'ús del qual millorarà la productivitat.
  • suport именованных аргументов функций, позволяющих передававать в функцию значения в привязке к именам, т.е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы. Например, «array_fill(start_index: 0, num: 100, value: 50)».
  • При вызове методов permès применение оператора «?», который позволяет инициировать вызов только, если метод присутствует, что позволяет избежать лишних проверок на возврат значения «null». Например, «$dateAsString = $booking->getStartDate()?->asDateTimeString()»;
  • suport tipus de sindicats, definint col·leccions de dos o més tipus (per exemple, “funció pública foo(Foo|Bar $input): int|float;”).
  • suport atributs (anotacions) que us permeten enllaçar metadades (com ara informació de tipus) a classes sense utilitzar la sintaxi de Docblock.
  • Поддержка выражений partit, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания «break».

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

  • Sintaxi escurçada definicions de classe, que us permeten combinar la definició d'un constructor i propietats.
  • Nou tipus de retorn - estàtic.
  • Nou tipus - mixt, que es pot utilitzar per determinar si una funció accepta paràmetres de diferents tipus.
  • Expressió llançar per gestionar les excepcions.
  • WeakMap per crear objectes que es poden sacrificar durant la recollida d'escombraries (per exemple, per emmagatzemar memòria cau innecessària).
  • Oportunitat utilitzant l'expressió "::class" per als objectes (anàloga a cridar get_class()).
  • Oportunitat definicions al bloc catch d'excepcions que no estan lligades a variables.
  • Oportunitat deixant una coma després de l'últim element de la llista de paràmetres de funció.
  • Nova interfície Cordable per identificar qualsevol tipus de cadena o dada que es pugui convertir en una cadena (per a la qual està disponible el mètode __toString()).
  • Nova característica str_contain(), un anàleg simplificat de strpos per determinar l'aparició d'una subcadena, així com les funcions str_starts_with() i str_ends_with() per comprovar les coincidències al principi i al final d'una cadena.
  • Característica afegida fdiv(), que realitza una operació de divisió sense llançar un error en dividir per zero.
  • Canviat lògica d'unió de cadenes. Per exemple, l'expressió 'echo "sum:" . $a + $b' s'havia interpretat anteriorment com a 'eco ("suma: " . $a) + $b', i a PHP 8 es tractarà com a "eco "sum: ". ($a + $b)'.
  • Estrènyer comprovant operacions aritmètiques i de bits, per exemple, les expressions "[] % [42]" i "$object + 4" donaran lloc a un error.
  • Implementat un algorisme d'ordenació estable en el qual es conserva l'ordre de valors idèntics en diferents execucions.
  • Font: opennet.ru

Afegeix comentari