PHP 8: características y mejoras de esta release

Release PHP 8 (gran actualización de PHP)

La última versión del lenguaje PHP, PHP 8, se lanzó el 26 de noviembre de 2020. Esta última gran actualización incluye muchas características nuevas y optimizaciones importantes, comparado con las versiones anteriores. El desarrollo de la versión 8 de PHP se ha centrado en crear nuevas funcionalidades. Algunas de las características nuevas más importantes son los argumentos con nombre, los atributos, las propiedades del constructor y la compilación JIT.

Argumentos con nombre

Los argumentos con nombre (named arguments, en inglés) son independientes del orden y se documentan automáticamente; además de permitir omitir parámetros opcionales. Permiten nombrar parámetros al llamar a una función; una característica que ya existe en otros lenguajes de programación.

Los argumentos con nombre permiten a los desarrolladores sobreescribir únicamente los valores por defecto que deseen cambiar. De modo que ya no es necesario especificar todos los valores por defecto. Además, los argumentos con nombre se pueden combinar con argumentos normales, posicionales.

Compilación Just-In-Time (JIT)

Como parte de las mejoras a nivel de rendimiento, PHP 8 incluye dos compiladores JIT: Tracing JIT y Function JIT. El rendimiento de una aplicación típica es similar al de la versión anterior de PHP, pero se incrementa el rendimiento en las aplicaciones que requieren mucha CPU. Tal y como se explica en el JIT PHP RFC:

«Usar JIT puede abrir la puerta para que PHP se use con más frecuencia en otros casos, que no son web, en los que se requiere mucha CPU —donde los beneficios a nivel de rendimiento serán muy sustanciales— y para los cuales PHP probablemente ni siquiera se considera una opción actualmente.»

La compilación JIT o compilación en tiempo de ejecución, también conocida como «traducción dinámica», es una técnica útil para mejorar considerablemente el rendimiento. Consiste en ejecutar código informático que se compila directamente durante la ejecución de un programa; es decir, durante el tiempo de ejecución en lugar de antes de la ejecución.

Atributos

Esta nueva característica permite añadir metadatos estructurados directamente en la sintaxis nativa de PHP; sin usar anotaciones PHPDoc. Los atributos se pueden añadir a clases, funciones, interfaces, etc. Un concepto similar a los atributos ya existe en otros lenguajes de programación.

Tipos de unión

Los tipos de unión (union types, en inglés) permiten trasladar más tipos de datos de las anotaciones PHPDoc a las firmas de las funciones. El hecho de soportar tipos de unión directamente en el lenguaje proporciona diversas ventajas, como simplificar y optimizar considerablemente la sintaxis, minimizar el riesgo de que los tipos de datos se vuelvan obsoletos y la detección temprana de errores. No obstante, por el momento no se incluye soporte para union types arbitrarios.

Otras características de PHP 8

PHP 8 incluye más características como el constructor property promotion RFC, las expresiones Match o el operador nullsafe. También incluye mejoras en el sistema de tipos y en el tratamiento de errores, como: tipo de retorno estático, avisos de error reclasificados o verificaciones de tipos más estrictas para operadores aritméticos y bitwise.

Esta nueva versión también incluye nuevas funciones, clases e interfaces, como: token_get_all(), get_debut_type(), una clase weak map o una nueva interfaz stringable.

Puedes encontrar más detalles, ejemplos y documentación sobre PHP 8 en la página de la actualización.

Si te ha gustado, compártelo en redes sociales

Configuración de las cookies
Stackscale, Grupo Aire logo

Al aceptar las cookies acepta voluntariamente el tratamiento de sus datos. Esto también incluye, por un tiempo limitado, su consentimiento de acuerdo con el Artículo 49 (1) (a) RGPD para el procesamiento de datos fuera del EEE, por ejemplo, en los EE.UU. En estos países, a pesar de una cuidadosa selección y obligación de los proveedores de servicios, no se puede garantizar el alto nivel europeo de protección de datos.

Si los datos se transfieren a los EE.UU., existe, por ejemplo, el riesgo de que las autoridades de los EE.UU. procesen estos datos con fines de control y supervisión sin que estén disponibles recursos legales efectivos o sin que se puedan hacer valer todos los derechos del interesado. Puede revocar su consentimiento en cualquier momento.

Cookies necesarias

Son aquellas que ayudan a hacer una página web utilizable activando funciones básicas como la navegación en la página y el acceso a áreas seguras de la página web. La página web no podrá funcionar adecuadamente sin estas cookies. Le informamos de que puede configurar su navegador para bloquear o alertar sobre estas cookies, sin embargo, es posible que determinadas áreas de la página web no funcionen. Estas cookies no almacenan ninguna información de identificación personal.

- moove_gdpr_popup

Cookies analíticas

Son aquéllas que permiten al Editor de las mismas, el seguimiento y análisis del comportamiento de los usuarios de los sitios web a los que están vinculadas. La información recogida mediante este tipo de cookies se utiliza en la medición de la actividad de los sitios web, aplicaciones o plataformas y para la elaboración de perfiles de navegación de los usuarios de dichos sitios, aplicaciones y plataformas, con el fin de introducir mejoras en función del análisis de los datos de uso que hacen los usuarios del servicio.

Google Analytics: Registra una identificación única que se utiliza para generar datos estadísticos acerca de cómo utiliza el visitante el sitio web. La información generada por la cookie sobre su uso de este sitio web generalmente se transmite a un servidor de Google en los EE. UU. y es almacenada allí por Google LLC, 1600 Amphitheatre Parkway Mountain View, CA 94043, EE.UU.

- _dc_gtm_UA-30121999-1

- _ga_C3BSYFJ6DM

- _gat_gtag_UA_30121999_1

- _ga

- _gcl_au

- _gid