Una de las grandes desventajas que tenía php era el tipado. Pero con la nueva versión 7 parece que que lo han arreglado usando declare(strict_types=1);. Con el siguiente ejemplo se va a ve bastante sencillo:
$a='1'; // string $b=2; //integer function FunctionName (int $a, int $b){ return $a + $b; } echo FunctionName ($a, $b);
En el ejemplo anerior no se va a producir ningún error pero si al ejemplo le añadimos declare(strict_types=1); la cosa cambia se producirá un error.
declare(strict_types=1); $a='1'; // string $b=2; //integer function FunctionName (int $a, int $b){ return $a + $b; } echo FunctionName ($a, $b);
Una observación sobre declare(strict_types=1); es que solo funciona en el fichero en el que se inicia, en el resto no lo hará y habría que hacerlo en cada uno de los ficheros del proyecto.