PHP, o Hypertext Preprocessor, es un lenguaje de programación muy popular usado especialmente en el desarrollo web.

El lanzamiento de la versión 8 de PHP está previsto para el día 3 Diciembre de 2020 y ya se conocen algunas de las principales novedades que incorporará.

Al tratarse de una versión mayor los cambios que introducirá puede que sean incompatibles con versiones anteriores obteniendo a cambio mejoras tanto de rendimiento como características muy interesantes.

A continuación vamos a hacer un repaso de cuáles serán los principales cambios, no todos, que nos vamos a encontrar en PHP 8.

Union Types
Los “union types” son una colección de dos o más tipos de datos. De este modo podemos tener variables que acepten ser de tipos distintos. Por ejemplo, puedo tener un número que puede ser usado como int o como float.

Nuevas funciones para strings
PHP 8 trae también una serie de nuevas funciones para simplificar la forma en que trabajamos con el tipo string .
Seguramente la más interesante de ellas sea str_contains , la cual nos soluciona tener que emplear la función strpos para comprobar si un string contiene a otro.
Además de esta función, PHP 8 incorpora dos más:

Catch sin especificar la variable que recoge la excepción
Otra mejora que trae PHP 8 es la posibilidad de especificar bloques try / catch sin que el catch tenga que declarar la variable que recoge la excepción, ya que a veces no se emplea para nada, añadiendo ruido visual al código o incluso siendo señalado como warning por el editor.

Attributes
Los atributos o anotaciones nos permiten añadir meta datos a nuestras clases, algo que seguramente os resulte familiar si trabajáis con frameworks como Symfony o Laravel.
Según lo propuesto en la RFC, a partir de PHP 8 podremos especificar atributos / anotaciones sin tener que recurrir a bloques de comentarios.
Para ello, lo primero que haremos será crear un atributo como si de una clase se tratase y empleando el atributo <<PhpAttribute>> para que pueda ser identificado como tal.