2010-09-08 4 views
5

Wenn echo ing ein boolean (wahr oder falsch), wandelt PHP es zu 1 oder <nothing> und zeigt es an. zB:PHP boolean, um mit Änderung & einer Bedingung zu string

$x = true; echo $x; //displays: 1 
$x = false; echo $x; //displays: <nothing> 

Meine Frage: Gibt es eine PHP-Funktion (wenn nicht, wie es zu codieren), die genau anzeigen kann „true“ oder „false“ (und nicht 1 oder nichts), wenn eine Variable a boolean sonst nur anzeigen, wie PHP es normalerweise anzeigen würde.

Antwort

7

Ja, es kann dies leicht codiert wie sein:

function var_to_str($in) 
{ 
    if(is_bool($in)) 
    { 
     if($in) 
     return "true"; 
     else 
     return "false"; 
    } 
    else 
     return $in; 
} 

//Test it now 
echo var_to_str("this is string") . PHP_EOL; 
echo var_to_str(123) . PHP_EOL; 
echo var_to_str(true) . PHP_EOL; 
echo var_to_str(false) . PHP_EOL; 

Diese Ausgänge:

this is string 
123 
true 
false 
8

Ich habe gerade diese gesucht zu tun, aber so ohne eine Funktion zu, um es inline benötigt Ich habe gerade verwendet:

echo(is_bool($x) ? ($x ? "true":"false"):$x); 

Nicht die einfachste zu lesen, aber die Arbeit erledigt!

+0

Liebe dieses! Pretty :) –

0

ich dieses Problem hatte, fand diese Frage und die Antwort war nicht ganz das, was ich brauchte, so habe ich aus diesem:

array_pop (array_keys (array ('FALSCH' => false, 'TRUE' => true), [bool]))

um einfach einen gedruckten (wiederholten) Zeichenfolgenwert für eine [bool] zu erhalten, wobei [bool] durch eine Variable ersetzt wird, von der man weiß, dass sie bool ist.

dachte, es könnte andere, die diese Frage zu finden helfen ....

+0

Das würde funktionieren, aber ein ernsthafter Performance-Hit. Schreiben Sie besser eine Funktion, die die entsprechende Zeichenfolge für den Wert zurückgibt. – metadings

1
str_replace(array(0, 1), array("No", "Yes"), str_pad(headers_sent(), 1, "0")) 

ich headers_sent() nur als Boolesche Variable verwendet.