is_true - PHP-Consigue bool para hacer eco falso cuando es falso
return true php (13)
En mi opinión, la mejor forma de lograr el resultado deseado es con php.net/manual/en/function.var-export.php .
Esto siempre imprimirá un valor (y no ocultará silenciosamente null
o false
), pero le dará información sobre lo que está imprimiendo. var_export
te dice qué valor tienes, intenta literalmente imprimir tu valor para que puedas copiar / pegar el resultado en php.
var_export(true); // true
var_export(false); // false
var_export(1); // 1
var_export(0); // 0
var_export(null); // NULL
var_export(''true''); // ''true'' <-- note the quotes
var_export(''false''); // ''false''
Por supuesto, si desea estrictamente una cadena "booleana", puede convertir a booleano como en el siguiente ejemplo, ¡pero tenga cuidado con el lanzamiento de "errores"!
var_export((bool) true); // true
var_export((bool) false); // false
var_export((bool) 1); // true
var_export((bool) 0); // false
var_export((bool) ''''); // false
var_export((bool) ''true''); // true
var_export((bool) null); // false
// !! CAREFUL WITH CASTING !!
var_export((bool) ''false''); // true
var_export((bool) ''0''); // false
Por alguna razón, el siguiente código no imprime nada:
$bool_val = (bool)false;
echo $bool_val;
Pero el siguiente código imprime 1:
$bool_val = (bool)true;
echo $bool_val;
¿Hay una mejor manera de imprimir 0 o falso cuando $ bool_val es falso que agregar una instrucción if?
Editar: cambió la segunda declaración de falso a verdadero
Esta es la forma más fácil de hacer esto:
$text = var_export($bool_value,true);
echo $text;
o
var_export($bool_value)
Si el segundo argumento no es verdadero, generará el resultado directamente.
Esto imprimirá el valor booleano tal como es, en lugar de 1/0.
$bool = false;
echo json_encode($bool); //false
Intenta convertir tu booleano a un número entero
echo (int)$bool_val;
La opción %b
de sprintf() convertirá un booleano en un entero:
echo sprintf("False will print as %b", false); //False will print as 0
echo sprintf("True will print as %b", true); //True will print as 1
Si no está familiarizado con esto: puede asignar a esta función una cantidad arbitraria de parámetros, mientras que la primera debería ser su cadena de salida especiada con cadenas de reemplazo como %b
o %s
para el reemplazo general de cadenas.
Cada patrón será reemplazado por el argumento en orden:
echo sprintf("<h1>%s</h1><p>%s<br/>%s</p>", "Neat Headline", "First Line in the paragraph", "My last words before this demo is over");
Me gusta este para imprimir eso
var_dump ($var);
No, ya que la otra opción es modificar el motor Zend, y sería difícil llamar a eso una "mejor manera".
Editar:
Si realmente quisiera, podría usar una matriz:
$boolarray = Array(false => ''false'', true => ''true'');
echo $boolarray[false];
Puedes usar un operador ternario
echo false ? ''true'' : ''false'';
json_encode lo hará out-of-the-box, pero no es bonito (sangría, etc.):
echo json_encode(array(''whatever'' => TRUE, ''somethingelse'' => FALSE));
...da...
{"whatever":true,"somethingelse":false}
echo $bool_val ? ''true'' : ''false'';
O si solo quieres salida cuando es falsa:
echo !$bool_val ? ''false'' : '''';
echo(var_export($var));
Cuando $var
es una variable booleana, se imprimirá true
o false
.
function dump_condition($condition){
if($condition){
return "true";
} else {
return "false";
}
}
usar en script
echo dump_condition(1>0); // print "true"
echo dump_condition(1<0); // print "false"