El siguiente código no imprime nada:
$bool_val = (bool)false;
echo $bool_val;
Pero se imprime el siguiente código 1
:
$bool_val = (bool)true;
echo $bool_val;
¿Hay una mejor manera de imprimir 0
o false
cuándo $bool_val
es false
que agregar una if
declaración?
(bool)
reparto es redundante, no es necesario bool bool fundido a:(bool) true === true
.echo 0==1;
salga0
ofalse
?Respuestas:
O si solo desea la salida cuando es falsa:
fuente
FALSE == ''
. Es perfectamente válido y forma parte de otros idiomas, incluido JavaScript. Lo extraño es que FALSE está predeterminado en una cadena vacía. Debería estar por defecto en 0. Siempre. Especialmente porque VERDADERO siempre será predeterminado a 1. Esto rompe una regla cardinal de programación. Mantenga su código consistente. Esto es claramente un error.!! '0'
evalúafalse
en PHP, estátrue
en JS.!! ""
es falso en JS y PHP.Esta es la forma más fácil de hacer esto:
o
Si el segundo argumento no es verdadero, generará el resultado directamente.
fuente
No, ya que la otra opción es modificar el motor Zend, y sería difícil llamarlo "una mejor manera".
Editar:
Si realmente quisieras, podrías usar una matriz:
fuente
Esto imprimirá el valor booleano tal como es, en lugar de 1/0.
fuente
¿Intenta convertir tu booleano a entero?
fuente
Me gusta este para imprimir eso
fuente
var_export
Proporciona la funcionalidad deseada.Esto siempre imprimirá un valor en lugar de imprimir nada para
null
ofalse
.var_export
imprime una representación PHP del argumento que se pasa, la salida podría copiarse / pegarse nuevamente en PHP.Si desea imprimir cadenas
"true"
o"false"
, puede emitir un booleano como se muestra a continuación, pero tenga cuidado con las peculiaridades:fuente
Esto da
0
o1
:Manual PHP: función intval
fuente
Cuando
$var
es variable booleana,true
ofalse
se imprimirá.fuente
var_export
en este caso, hará eco de su resultado y devolverá nulo, por lo que var_export está generando eltrue || false
, yecho
está haciendo econull
(''
). Para devolver la salida devar_export
, debe proporcionar un segundo parámetro comotrue
.json_encode
es una mejor opción.Puedes usar un operador ternario
fuente
La
%b
opción de sprintf () convertirá un booleano en un entero:Si no está familiarizado con él: puede darle a esta función una cantidad arbitraria de parámetros, mientras que el primero debe ser su cadena de salida condimentada con cadenas de reemplazo como
%b
o%s
para el reemplazo general de cadenas.Cada patrón será reemplazado por el argumento en orden:
fuente
json_encode lo hará listo para usar, pero no es bonito (sangrado, etc.):
...da...
fuente
utilizar en script
fuente
Estás convirtiendo un booleano en booleano y esperando que se muestre un entero. Funciona
true
pero no es falso. Como esperas un número entero:fuente