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 0o falsecuándo $bool_vales falseque agregar una ifdeclaración?

(bool)reparto es redundante, no es necesario bool bool fundido a:(bool) true === true.echo 0==1;salga0ofalse?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úafalseen PHP, estátrueen 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_exportProporciona la funcionalidad deseada.Esto siempre imprimirá un valor en lugar de imprimir nada para
nullofalse.var_exportimprime 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
0o1:Manual PHP: función intval
fuente
Cuando
$vares variable booleana,trueofalsese imprimirá.fuente
var_exporten este caso, hará eco de su resultado y devolverá nulo, por lo que var_export está generando eltrue || false, yechoestá haciendo econull(''). Para devolver la salida devar_export, debe proporcionar un segundo parámetro comotrue.json_encodees una mejor opción.Puedes usar un operador ternario
fuente
La
%bopció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
%bo%spara 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
truepero no es falso. Como esperas un número entero:fuente