2010-09-08 10 views
5

Cuando echo ing boolean (verdadero o falso), PHP lo convierte en 1 o <nothing> y lo muestra. por ejemplo:PHP booleano a cadena con modificación & a condición

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

Mi Pregunta: ¿Hay una función de PHP (si no la forma de código es) que puede mostrar exactamente "verdadero" o "falso" (y no 1 o nada), si una variable es un booleano de lo contrario solo se muestra como PHP normalmente lo mostraría.

Respuesta

7

Sí, puede ser fácilmente este otro código:

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; 

Este salidas:

this is string 
123 
true 
false 
8

He estado buscando para hacer esto, pero necesitaba a él en línea sin una función de por lo Acabo de utilizar:

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

No es el más fácil de leer, pero hace el trabajo!

+0

¡Amo este! Pretty :) –

0

tuve este problema, encontré esta pregunta y la respuesta no era exactamente lo que necesitaba, así que trabajé a cabo esto:

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

para obtener simplemente un valor de cadena impreso (con eco) para un [bool], reemplazando [bool] con una variable que sabe que es un bool.

pensó que podría ayudar a otros que se encuentran esta pregunta ....

+0

Eso funcionaría, pero un golpe de rendimiento serio. Mejor escriba una función que devuelva la cadena apropiada para el valor. – metadings

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

que utilizan headers_sent() al igual que una variable booleana.