ejemplo - is_true php
El valor booleano impreso en PHP está vacío, ¿por qué? (4)
Los resultados provienen del hecho de que php convierte implícitamente los valores bool en cadenas si se utiliza como en su ejemplo. (string)false
da una cadena vacía y (string)true
da ''1''
. Eso es consistente con el hecho de que '''' == false
y ''1'' == true
.
Soy nuevo en PHP. Estoy implementando un script y estoy desconcertado por lo siguiente:
$local_rate_filename = $_SERVER[''DOCUMENT_ROOT'']."/ghjr324l.txt";
$local_rates_file_exists = file_exists($local_rate_filename);
echo $local_rates_file_exists."<br>";
Este fragmento de código muestra una cadena vacía, en lugar de 0 o 1 (o verdadero o falso). ¿Por qué? La documentación parece indicar que un valor booleano es siempre 0 o 1. ¿Cuál es la lógica detrás de esto?
Si desea verificar si el archivo existe cuando no está seguro de que el tipo de devolución es verdadero / falso o 0/1, puede usar ===.
if($local_rates_file_exists === true)
{
echo "the file exists";
}
else
{
echo "the doesnt file exists";
}
Sobre la conversión de un booleano a una cadena, el manual dice :
Un valor TRUE booleano se convierte a la cadena "1". FALSO booleano se convierte a "" (la cadena vacía). Esto permite la conversión entre valores booleanos y de cadena.
Un booleano siempre se puede representar como un 1 o un 0, pero eso no es lo que obtienes cuando lo conviertes en una cadena.
Si desea que se represente como un entero, cámbielo a uno :
$intVar = (int) $boolVar;
Tenga cuidado cuando realice conversiones de ida y vuelta con booleanos, el manual dice:
Un valor TRUE booleano se convierte a la cadena "1". FALSO booleano se convierte a "" (la cadena vacía). Esto permite la conversión entre valores booleanos y de cadena.
Así que necesitas hacer un
echo (int)$local_rates_file_exists."<br>";