Comezaron as probas beta de PHP 8

Presentado a primeira versión beta da nova rama da linguaxe de programación PHP 8. O lanzamento está previsto para o 26 de novembro. Ao mesmo tempo, as versións correctivas de PHP 7.4.9, 7.3.21 e
7.2.33, que eliminou os erros e vulnerabilidades acumulados.

O principal innovacións PHP 8:

  • Acender Compilador JIT, cuxo uso mellorará a produtividade.
  • Apoiar argumentos de funcións con nome, que lle permiten pasar valores á función en relación cos nomes, é dicir. Podes pasar argumentos en calquera orde e definir argumentos opcionais. Por exemplo, "array_fill(índice_inicio: 0, num: 100, valor: 50)".
  • Ao chamar métodos permitido usando o operador “?”, que permite iniciar unha chamada só se o método está presente, o que evita verificacións innecesarias para devolver o valor “nulo”. Por exemplo, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Apoiar tipos de sindicatos, definindo coleccións de dous ou máis tipos (por exemplo, “función pública foo(Foo|Bar $input): int|float;”).
  • Apoiar atributos (anotacións) que che permiten vincular metadatos (como información de tipo) a clases sen usar a sintaxe de Docblock.
  • Apoio á expresión combinar, que, a diferenza de switch, pode devolver valores, admitir condicións de combinación, usar comparacións de tipos estritas e non requiren unha especificación de "ruptura".

    $resultado = coincidencia ($entrada) {
    0 => "Ola",
    '1', '2', '3' => “mundo”,
    };

  • Sintaxe acurtada definicións de clases, o que lle permite combinar a definición dun construtor e propiedades.
  • Novo tipo de devolución - estático.
  • Novo tipo - mixto, que se pode usar para determinar se unha función acepta parámetros de diferentes tipos.
  • Expresión xogar para xestionar excepcións.
  • Mapa débil para crear obxectos que se poidan sacrificar durante a recollida de lixo (por exemplo, para almacenar cachés innecesarios).
  • Oportunidade usando a expresión "::class" para obxectos (análogo a chamar get_class()).
  • Oportunidade definicións no bloque catch de excepcións que non están vinculadas a variables.
  • Oportunidade deixando unha coma despois do último elemento da lista de parámetros da función.
  • Nova interface Cordable para identificar calquera tipo de cadea ou dato que se poida converter nunha cadea (para o que está dispoñible o método __toString()).
  • Nova característica str_contain(), un análogo simplificado de strpos para determinar a aparición dunha subcadea, así como as funcións str_starts_with() e str_ends_with() para comprobar as coincidencias ao comezo e ao final dunha cadea.
  • Función engadida fdiv(), que realiza unha operación de división sen producir un erro ao dividir entre cero.
  • Cambiado lóxica de unión de cadeas. Por exemplo, a expresión 'echo "sum:" . $a + $b' interpretouse anteriormente como 'eco ("suma: " . $a) + $b', e en PHP 8 tratarase como "eco "suma: " . ($a + $b)'.
  • Apretado comprobando operacións aritméticas e de bits, por exemplo, as expresións "[] % [42]" e "$obxecto + 4" producirán un erro.
  • Implementado un algoritmo de clasificación estable no que se conserva a orde de valores idénticos en diferentes execucións.
  • Fonte: opennet.ru

Engadir un comentario