Aujourd'hui, en jouant avec PHP, j'ai découvert que les valeurs "true" et "false" ne sont pas correctement converties en booléens dans une condition, par exemple dans la fonction suivante :
function isBoolean($value) {
if ($value) {
return true;
} else {
return false;
}
}
Si j'exécute :
isBoolean("true") // Returns true
isBoolean("") // Returns false
isBoolean("false") // Returns true, instead of false
isBoolean("asd") // Returns true, instead of false
Il ne semble fonctionner qu'avec les valeurs "1" et "0" :
isBoolean("1") // Returns true
isBoolean("0") // Returns false
Existe-t-il une fonction native en PHP pour analyser les chaînes "true" et "false" en booléens ?
0 votes
Dans votre code,
isBoolean("")
devrait retourner false.0 votes
Vous devriez envisager de changer la réponse acceptée par celle d'Eric Caron. Il vous montre une fonction native qui fait ce que vous demandez.
1 votes
PHP n'a pas pensez à à propos de ce que dit la chaîne, "faux" est juste cinq caractères qui ne veulent rien dire. Ils sont quelque chose cependant, la valeur booléenne est évaluée à
true
même si pour un lecteur humain, il semblerait plus intuitif que cela signifieFALSE
.