2010-02-12 4 views
3

Lorsque je convertis en booléen (en utilisant (bool)), y a-t-il un moyen intégré pour que PHP renvoie effectivement les constantes true ou false. Au moment où je reçois 1 ou vide, qui évaluent à vrai et faux respectivement.Existe-t-il un moyen d'obtenir des valeurs de chaîne "true"/"false" à partir d'un booléen en PHP?

Je veux la valeur renvoyée pour une sémantique plus claire. Cependant, si je ne peux pas l'obtenir, je vais juste régler avec 1 et vide.

+2

peut-être une question plus utile si vous êtes inquiet au sujet sémantique, serait de savoir comment vous * sortie * tr ue/false valeurs à des fins de débogage - dans ce cas, vous pourriez être plus intéressé par, disons, en enveloppant la fonction 'print' ou un tel. – Amber

+1

@Dav Merci, je n'ai pas pensé à mon problème à fond. J'étais en sortie brute, et je n'ai pas cliqué que je n'utiliserais pas ces valeurs pour afficher à mon avis. – alex

Répondre

4

PHP affiche les valeurs booléennes comme 1 (true) ou chaîne vide (false) lors de la sortie.

Si vous voulez vérifier si elle est true ou false utilisation == (si la conversion implicite est OK) ou === (si ce n'est pas). Par exemple:

echo $val ? 'true' : 'false'; // implicit conversion 
echo $val === true ? 'true' : 'false'; // no conversion 

Je ne connais aucune façon de faire des valeurs booléennes de sortie de PHP en mode natif comme true ou false.

+0

Je pense qu'il veut les valeurs de chaîne "vrai" ou "faux". –

+0

Merci, mais cela ne m'a rien dit que je ne savais pas déjà. Je pense que ma question est un peu stupide en fait. – alex

+0

@fiXedd: ma dernière phrase ne répond pas à ça? – cletus

0

Si vous êtes à la recherche pour les chaînes « vrai » et « faux », une condition ternaire serait parfait:

<?=(($boolean) ? "true" : "false")?> 
7

Si vous êtes trop paresseux pour faire une comparaison et une chaîne ou echo si vous voulez juste de le garder court, vous pouvez utiliser:

var_export($boolean, true); // the second parameter is to return and not output 

PHP: var_export

+0

Cela devrait en fait être la réponse acceptée, toute personne qui pose une question PHP devrait savoir comment utiliser les opérateurs ternaires déjà. Cependant, il y a une chose que j'ajouterais à cela. Si vous voulez une conversion implicite comme cela est mentionné dans la réponse de Cletus, vous devez d'abord lancer '$ boolean' à' (boolean) $ boolean'. Cela retournera '' true'' pour des valeurs comme '1' –

Questions connexes