php

Nuevas caracteristicas de php 8

php-8

PHP8: un zoom sobre las nuevas características

Tras una prueba en junio de 2020, la última versión del lenguaje de scripting PHP8.0 se publicó en noviembre de 2020. Este lenguaje es uno de los más fáciles de entender y aplicar. Con PHP7, su velocidad ha sido bien optimizada y su uso mejora el ranking. Al final de esta reciente actualización, descubra las nuevas características.

¿Es el código antiguo compatible con PHP8?

La incompatibilidad del código antiguo con la nueva versión de PHP8 debería ser obvia: sin embargo, la mayoría de los cambios que pueden provocar compilaciones ya estaban obsoletos en las actualizaciones 7.2, 7.3 y 7.4.

Estos son los últimos cambios que podemos citar: Legado de comillas mágicas, el tipo real, métodos Reflection export(), filtro FILTER_SANITIZE_MAGIC_QUOTES, mezcla de orden de parámetros de Implode(), array_key_exists() con objetos, mb_strrpos() con codificación como 3er argumento, Desvinculación de $this de cierres no estáticos, función hebrevc(), función convert_cyr_string(), función money_format(), función ezmlm_hash(), directiva ini allow_url_include, y función restore_include_path().

Si su código se ha actualizado regularmente, no debería tener ningún problema a pesar de que los cambios retroactivos no son compatibles.

PHP8.0, ¿cuáles son las nuevas características?

Con esta nueva versión de PHP, los desarrolladores web se benefician de características que multiplican el número de posibilidades. Descubra las principales mejoras:

Mejora del rendimiento gracias al compilador JIT
El compilador JIT es probablemente la innovación más interesante de PHP8. Si PHP es un lenguaje no compilado, pero interpretado línea por línea, con el compilador JIT (just in time), el código se compila parcialmente durante la ejecución. Este sistema funciona un poco como una versión en caché del código. Según los resultados de las pruebas realizadas, se observa una mejora del rendimiento de más del 45% con el compilador JT.

Tipo de unión para la unión de dos o más tipos
Los Union Types son características que ya se utilizan en otros lenguajes como TypeScript, C/C++ y Haskell. Con PHP8, permiten formar una unión con dos o más tipos. Se pueden utilizar todos los tipos identificados excepto void, porque no da un valor de retorno. Además, es posible declarar nulas las uniones gracias a «|null o ? ».

Tipo de retorno estático para completar self & parent
El término «static» diseña una clase especial: en esta nueva versión, es otro tipo de retorno válido que complementa a «self & parent».

WeakMap, una extensión de WeakRefs
Si WeakRefs ha sido añadida a PHP 7.4, esta función se expande con WeakMaps en PHP 8, permitiéndole eliminar objetos cuando sólo existe la caché que hace referencia a las clases de entidad de los objetos. También garantizan el ahorro de recursos durante la manipulación de los objetos.

::class aplicado a los objetos, para reducir el tamaño del código fuente
Cuando querías asignar una clase a los objetos en versiones anteriores, tenías que usar get_class(). Ahora se ha aplicado ::class para reducir el tamaño del código fuente.

Interfaz encadenable, cambio de adición manual a adición automática
La interfaz Stringable se añade automáticamente a las clases que ajustan el método _toString(). Tenga en cuenta que antes de la versión de PHP8, este paso se hacía siempre manualmente.

La función fdiv() que permite la división por 0
Con la división por 0, la función fdiv() permite obtener un valor de retorno INF, -INF o NAN.

Anotaciones de tipo y errores de tipo
Con esta nueva versión, tiene anotaciones de tipo correctas con todas las funciones y métodos internos. Mientras que los TypeErrors solían ocurrir sólo con funciones que el usuario definía, ahora la mayoría de las funciones internas devuelven TypeErrors con PHP8.

avisos de motor: una nueva clasificación
Gracias a esta actualización, aparecerán nuevos y más precisos mensajes de error de PHP en lugar de advertencias y notas.

Un nuevo parámetro display_errors=Off para los errores fatales
Ya no se utilizará @ para eliminar los errores. Sólo hay que configurar el servidor display_errors=Off.

Escribir métodos mágicos con firmas correctas y cambiar las firmas de reflexión
La escritura de métodos mágicos era siempre posible, incluso cuando las firmas no se ajustaban a la firma deseada. La versión de PHP 8 tiene varios controles de parámetros y valores de retorno para asegurar que las firmas sean siempre precisas. También se han modificado las firmas de reflexión.

Deja una respuesta