2016-06-29 4 views
0

Ich bin ein wenig verwirrt, wie die PHP-Funktion boolval funktioniert. Betrachten Sie die folgendeWarum gibt boolval (false) in PHP leer?

<?php echo boolval(true); // prints 1

und Kontrast mit

<?php echo boolval(false); // prints nothing?

Warum bin ich nicht zurück entweder wahr/falsch zu bekommen? Und warum gibt boolval(false) nichts zurück?

Ich stieß auf dieses Problem beim Versuch, für ein boolesches Argument zu analysieren. Was ist korrekt, wenn ein Bool-Wert von extrahiert wird, wenn nicht mit dieser Funktion?

+2

'var_dump (boolval (false));' ' var_dump (!! $ argv);' – Rizier123

+0

Oder einfach nur 'echo false;' – PeeHaa

Antwort

1

die Beispiele in der Dokumentation Nach wäre dies der richtige Weg sein Boolesche Werte zu zeigen:

echo 'false: '.(boolval(false) ? 'true' : 'false')."\n"; 

See: http://php.net/manual/en/function.boolval.php

Das Handbuch sagt auch:

Ein boolean Wert TRUE wird in die Zeichenfolge "1" umgewandelt. Boolean FALSE ist umgewandelt in "" (die leere Zeichenfolge). Dies ermöglicht die Konvertierung zwischen 0 und zwischen Booleschen und String-Werten.

See: http://php.net/manual/en/language.types.string.php

1

Vom php manual

A TRUE Wert boolean wird mit dem String "1" umgewandelt. Boolean FALSE ist umgewandelt in "" (die leere Zeichenfolge). Dies ermöglicht die Konvertierung zwischen 0 und zwischen Booleschen und String-Werten.

Verwendung

echo $boolres ? 'true' : 'false';