Der folgende Code druckt nichts aus:
$bool_val = (bool)false;
echo $bool_val;
Der folgende Code wird jedoch gedruckt 1
:
$bool_val = (bool)true;
echo $bool_val;
Gibt es eine bessere Möglichkeit zum Drucken 0
oder false
wann $bool_val
ist das false
Hinzufügen einer if
Anweisung?
(bool)
Besetzung ist redundant, Sie müssen nicht Bool zu Bool umwandeln :(bool) true === true
.echo 0==1;
Ausgaben0
oderfalse
?Antworten:
Oder wenn Sie nur dann eine Ausgabe wünschen, wenn diese falsch ist:
quelle
FALSE == ''
. Es ist vollkommen gültig und Teil anderer Sprachen, einschließlich Javascript. Was seltsam ist, ist, dass FALSE standardmäßig eine leere Zeichenfolge verwendet. Der Standardwert sollte 0 sein. Immer. Zumal TRUE immer standardmäßig 1 ist. Dies verstößt gegen eine Grundregel der Programmierung. Halten Sie Ihren Code konsistent. Dies ist eindeutig ein Fehler.!! '0'
ausgewertetfalse
, abertrue
in JS.!! ""
ist in JS und PHP falsch.Dies ist der einfachste Weg, dies zu tun:
oder
Wenn das zweite Argument nicht wahr ist, wird das Ergebnis direkt ausgegeben.
quelle
Nein, da die andere Option darin besteht, die Zend-Engine zu modifizieren, und es schwer fällt, dies als "besseren Weg" zu bezeichnen.
Bearbeiten:
Wenn Sie wirklich wollten, könnten Sie ein Array verwenden:
quelle
Dadurch wird der boolesche Wert so ausgegeben, wie er ist, anstelle von 1/0.
quelle
Versuchen Sie, Ihren Booleschen Wert in eine Ganzzahl umzuwandeln?
quelle
Ich mag es, wenn dieser das ausdruckt
quelle
var_export
bietet die gewünschte Funktionalität.Dadurch wird immer ein Wert gedruckt, anstatt nichts für
null
oder zu druckenfalse
.var_export
Gibt eine PHP-Darstellung des übergebenen Arguments aus. Die Ausgabe kann kopiert / wieder in PHP eingefügt werden.Wenn Sie Zeichenfolgen
"true"
oder drucken möchten"false"
, können Sie wie folgt in einen Booleschen Wert umwandeln. Beachten Sie jedoch die Besonderheiten:quelle
Dies gibt
0
oder1
:PHP-Handbuch: Intval-Funktion
quelle
Wann
$var
ist eine boolesche Variabletrue
oderfalse
wird ausgedruckt?quelle
var_export
In diesem Fall wird das Ergebnis wiedergegeben und null zurückgegeben, sodass var_export das ausgibttrue || false
undecho
echoingnull
(''
). Um die Ausgabe von zurückzugebenvar_export
, müssen Sie einen zweiten Parameter als angebentrue
.json_encode
ist eine bessere Option.Sie können einen ternären Operator verwenden
quelle
Die
%b
Option sprintf () konvertiert einen Booleschen Wert in eine Ganzzahl:Wenn Sie damit nicht vertraut sind: Sie können dieser Funktion eine beliebige Anzahl von Parametern zuweisen, während die erste Ihre Ausgangszeichenfolge sein sollte, die mit Ersatzzeichenfolgen wie
%b
oder%s
für den allgemeinen Zeichenfolgenwechsel gewürzt ist .Jedes Muster wird in der folgenden Reihenfolge durch das Argument ersetzt:
quelle
json_encode erledigt dies sofort, aber es ist nicht schön (eingerückt usw.):
... gibt ...
quelle
Verwendung im Skript
quelle
Sie wandeln einen Booleschen Wert in einen Booleschen Wert um und erwarten, dass eine Ganzzahl angezeigt wird. Es funktioniert für,
true
aber nicht falsch. Da Sie eine ganze Zahl erwarten:quelle