Le code suivant n'imprime rien:
$bool_val = (bool)false;
echo $bool_val;
Mais le code suivant s'imprime 1
:
$bool_val = (bool)true;
echo $bool_val;
Y a-t-il une meilleure façon d'imprimer 0
ou false
quand $bool_val
est-ce false
que d'ajouter une if
déclaration?
(bool)
casting est redondant, vous ne avez pas besoin de fonte bool bool:(bool) true === true
.echo 0==1;
sorties0
oufalse
?Réponses:
Ou si vous ne voulez une sortie que lorsqu'elle est fausse:
la source
FALSE == ''
. Il est parfaitement valide et fait partie d'autres langages, y compris javascript. Ce qui est étrange, c'est que FALSE est par défaut une chaîne vide. Il doit être par défaut à 0. Toujours. D'autant plus que TRUE sera toujours par défaut à 1. Cela enfreint une règle cardinale de la programmation. Gardez votre code cohérent. C'est clairement un bug.!! '0'
qu'évaluéfalse
en PHP, il esttrue
en JS.!! ""
est faux en JS et PHP.Voici la manière la plus simple de procéder:
ou
Si le deuxième argument n'est pas vrai, il affichera le résultat directement.
la source
Non, puisque l'autre option est de modifier le moteur Zend, et on aurait du mal à appeler cela une «meilleure façon».
Éditer:
Si vous le souhaitez vraiment, vous pouvez utiliser un tableau:
la source
Cela affichera la valeur booléenne telle quelle, au lieu de 1/0.
la source
Essayez de convertir votre booléen en entier?
la source
J'aime celui-ci pour l'imprimer
la source
var_export
fournit la fonctionnalité souhaitée.Cela imprimera toujours une valeur plutôt que de ne rien imprimer pour
null
oufalse
.var_export
imprime une représentation PHP de l'argument passé, la sortie peut être copiée / collée dans PHP.Si vous souhaitez imprimer des chaînes
"true"
ou"false"
, vous pouvez effectuer un cast en booléen comme ci-dessous, mais méfiez-vous des particularités:la source
Cela donne
0
ou1
:Manuel PHP: fonction intval
la source
Quand
$var
est une variable booléennetrue
oufalse
sera imprimé.la source
var_export
dans ce cas, il fera écho à son résultat et retournera null, donc var_export affiche letrue || false
, etecho
est echoingnull
(''
). Pour renvoyer la sortie devar_export
, vous devez fournir un second paramètre sous la formetrue
.json_encode
est une meilleure option.Vous pouvez utiliser un opérateur ternaire
la source
L'
%b
option de sprintf () convertira un booléen en entier:Si vous n'êtes pas familier avec cela: vous pouvez donner à cette fonction une quantité arbitraire de paramètres tandis que le premier devrait être votre chaîne de sortie épicée avec des chaînes de remplacement comme
%b
ou%s
pour un remplacement général de chaîne.Chaque motif sera remplacé par l'argument dans l'ordre:
la source
json_encode le fera prêt à l'emploi, mais ce n'est pas joli (indenté, etc.):
... donne ...
la source
utiliser sur le script
la source
Vous convertissez un booléen en booléen et vous attendez à ce qu'un entier soit affiché. Cela fonctionne pour
true
mais pas faux. Puisque vous attendez un entier:la source