PHP7 Scalar Type Hinting

Publicado el 10 agosto 2015 por Jocual

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)

&nbsp;
<pre>