php 7, préciser le type d'une variable dans la fonction force le type ?
Posté : 12 juil. 2016, 15:44
Bonjour à tous,
Ce code ne renverra aucune erreur, PHP a converti la string en int automatiquement; le preuve, il vous suffit de retirer les types pour que l'erreur soit jetée. Il me semblait avoir lu que préciser le type d'une variable n'était qu'une déclaration et si vous ajoutez le strict_types vous aurez bien une notice.
C'est déconcertant, est-ce un bug ?
Code : Tout sélectionner
function addition(int $nombre1, int $nombre2):int
{
if (!is_int($nombre1) || !is_int($nombre2)):
throw new TypeError('$nombre1 et $nombre2 doivent être de type int');
endif;
return $nombre1 + $nombre2;
}
try
{
echo addition(2, 5) . '<br />';
echo addition(3, '9') . '<br />';
}
catch (TypeError $e)
{
echo 'notice: ' . $e->getMessage();
}
C'est déconcertant, est-ce un bug ?