Le code suivant n'imprime rien:
$bool_val = (bool)false;
echo $bool_val;
Mais le code suivant imprime 1
:
$bool_val = (bool)true;
echo $bool_val;
Y a-t-il un meilleur moyen d’imprimer 0
ou false
lorsque $bool_val
est false
que d’ajouter une instruction if
?
echo $bool_val ? 'true' : 'false';
Ou si vous voulez seulement une sortie quand c'est faux:
echo !$bool_val ? 'false' : '';
Voici le moyen le plus simple de procéder:
$text = var_export($bool_value,true);
echo $text;
ou
var_export($bool_value)
Si le deuxième argument n'est pas vrai, le résultat sera directement affiché.
Non, car l'autre option est de modifier le moteur Zend, et il serait difficile d'appeler cela une "meilleure façon".
Edit:
Si vous le voulez vraiment, vous pouvez utiliser un tableau:
$boolarray = Array(false => 'false', true => 'true');
echo $boolarray[false];
Cela affichera la valeur booléenne telle quelle, au lieu de 1/0.
$bool = false;
echo json_encode($bool); //false
J'aime celui-ci pour l'imprimer
var_dump ($var);
Essayez de convertir votre booléen en entier?
echo (int)$bool_val;
var_export
fournit les fonctionnalités souhaitées.
Ceci affichera toujours une valeur plutôt que rien d’impression pour null
ou false
. _var_export
_ imprime une représentation PHP de l'argument passé, le résultat pourrait être copié/collé dans PHP.
_var_export(true); // true
var_export(false); // false
var_export(1); // 1
var_export(0); // 0
var_export(null); // NULL
var_export('true'); // 'true' <-- note the quotes
var_export('false'); // 'false'
_
Si vous souhaitez imprimer les chaînes _"true"
_ ou _"false"
_, vous pouvez convertir en un booléen comme ci-dessous, mais méfiez-vous des particularités:
_var_export((bool) true); // true
var_export((bool) false); // false
var_export((bool) 1); // true
var_export((bool) 0); // false
var_export((bool) ''); // false
var_export((bool) 'true'); // true
var_export((bool) null); // false
// !! CAREFUL WITH CASTING !!
var_export((bool) 'false'); // true
var_export((bool) '0'); // false
_
echo(var_export($var));
Lorsque $var
est une variable booléenne, true
ou false
sera imprimé.
L'option %b
de sprintf () convertira un booléen en entier:
echo sprintf("False will print as %b", false); //False will print as 0
echo sprintf("True will print as %b", true); //True will print as 1
Si vous ne le connaissez pas: Vous pouvez attribuer à cette fonction une quantité arbitraire de paramètres. La première doit être votre chaîne de sortie agrémentée de chaînes de remplacement telles que %b
ou %s
pour le remplacement général de la chaîne.
Chaque motif sera remplacé par l'argument dans l'ordre:
echo sprintf("<h1>%s</h1><p>%s<br/>%s</p>", "Neat Headline", "First Line in the paragraph", "My last words before this demo is over");
Vous pouvez utiliser un opérateur ternaire
echo false ? 'true' : 'false';
json_encode le fera immédiatement, mais ce n'est pas joli (en retrait, etc.):
echo json_encode(array('whatever' => TRUE, 'somethingelse' => FALSE));
... donne ...
{"whatever":true,"somethingelse":false}
function dump_condition($condition){
if($condition){
return "true";
} else {
return "false";
}
}
utiliser sur le script
echo dump_condition(1>0); // print "true"
echo dump_condition(1<0); // print "false"