PHP 7 - Declaraciones de tipo escalar
En PHP 7, se ha introducido una nueva característica, declaraciones de tipo escalar. La declaración de tipo escalar tiene dos opciones:
coercive - coercitivo es el modo predeterminado y no es necesario especificarlo.
strict - El modo estricto tiene que insinuarse explícitamente.
Los siguientes tipos de parámetros de función se pueden aplicar utilizando los modos anteriores:
- int
- float
- bool
- string
- interfaces
- array
- callable
Ejemplo: modo coercitivo
<?php
// Coercive mode
function sum(int ...$ints) {
return array_sum($ints);
}
print(sum(2, '3', 4.1));
?>
Produce la siguiente salida del navegador:
9
Ejemplo: modo estricto
<?php
// Strict mode
declare(strict_types=1);
function sum(int ...$ints) {
return array_sum($ints);
}
print(sum(2, '3', 4.1));
?>
Produce la siguiente salida del navegador:
Fatal error: Uncaught TypeError: Argument 2 passed to sum() must be of the type integer, string given, ...