Je viens de déboguer du code PHP 7.1 dans un plugin WP où une fonction renvoyait seulement 0
ou 1
lorsque je m'attendais à d'autres ints. Je me suis rendu compte que j'avais oublié d'enlever un casting (bool)
de plus tôt.hinting type PHP: bool et int
Mais cela m'a fait réfléchir, car la fonction avait un type de retour de int
. Voici une version simplifiée:
function get_foo(): int {
$val = get_option('foo'); // Returns a string that can be parsed as an int
return (bool) $val;
}
$foo = get_foo();
Il est facile de jeter entre bool
et int
, bien sûr, mais pourquoi ne pas jeter un TypeError?
Il existe trois scénarios dans lesquels une erreur TypeError peut être levée. ... La seconde est où une valeur renvoyée par une fonction ne correspond pas au type de retour de la fonction déclarée.
poster un code, le comportement actuel et le comportement attendu. –
très difficile à comprendre, poster l'échantillon ou code réel avec le schéma de la table de base de données aussi ... –
@M_Idr ees B.Balamanigandan Désolé, édité. –