Les proves beta de PHP 8 han començat

Presentat la primera versió beta de la nova branca del llenguatge de programació PHP 8 El llançament està previst per al 26 de novembre. Al mateix temps, versions correctives de PHP 7.4.9, 7.3.21 i
7.2.33, que eliminava els errors i les vulnerabilitats acumulats.

El principal innovacions PHP 8:

  • Inclusió Compilador JIT, l'ús del qual millorarà la productivitat.
  • suport arguments de funció anomenada, que us permeten passar valors a la funció en relació amb noms, és a dir. Podeu passar arguments en qualsevol ordre i definir arguments opcionals. Per exemple, "array_fill(start_index: 0, num: 100, valor: 50)".
  • En cridar mètodes permès utilitzant l'operador "?", que us permet iniciar una trucada només si el mètode està present, la qual cosa evita comprovacions innecessàries per retornar el valor "nul". Per exemple, "$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.
  • Suport a l'expressió partit, que, a diferència de l'interruptor, pot retornar valors, suportar condicions de combinació, utilitzar comparacions de tipus estrictes i no requereix una especificació de "ruptura".

    $resultat = coincidència ($entrada) {
    0 => "hola",
    '1', '2', '3' => "món",
    };

  • 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