PHP 7 trae consigo muchas novedades, que son:
Las ya implementadas :
- Tipado en el retorno de funciones
- Declaraciones de tipos escalares
- Quitar los warnings de date.timezone
- Arreglar el comportamiento de “foreach”
- Mayor rapidez al parsear parámetros en la API
- Sintaxis de escape de punto de código Unicode
- Operador ternario con isset: Con el operador ?? (doble fin interrogación)
- Comportamiento de enteros
- Fallo desbordamento ZPP
- Árbol de sintaxis abstracta
- Sintaxis uniforme de variables
- Inconsistencia de list()
- Eliminar soporte hexadecimal en conversión de cadenas numéricas
- Declaraciones de “use” en grupo
- EngineException
- Permitir “return” en iterators
Estas novedades están aceptadas:
- Operador combinado de comparación (<=>, spaceship):
- Reemplazar la extensión json por jsond
- Mejoras en la longitud de cadenas y enteros en plataformas de 64 bit
- Closure::call:
- Eliminada tags de sintaxis alternativa
- Multiples default en switch:
- Capturar “call to a member function of a non-object”
En estas todavía en fase de votación:
- Quitar SAPIs y extensiones no disponibles o no soportadas
- Filtrar unserialize()
Hoy vamos a hablar de la primera, Scalar Type Hinting, lo primero que veremos son los tipos de escalares soportados:
- string
- boolean
- integer
- float
Estos tipos de datos se pueden utilizar tanto como parámetros de entrada como de salida de las funciones.
</pre> function foo(int $a, string $b){ //... } <strong><strong> </strong></strong> <pre>
</pre> function bar(): int { return 1.0; } <strong><strong> </strong></strong> <pre>
Por defecto no lanza un fatal error si no se cumplen los tipos de datos, pero si queremos que sea estricto en ese sentido, solo tenemos que usar la funcion:
</pre> declare(strict_types=1) <pre>