Foros del Web » Programando para Internet » PHP »

Problema con valor boolean en .ini

Estas en el tema de Problema con valor boolean en .ini en el foro de PHP en Foros del Web. Hola amigos, tengo un archivo .ini que luego lo transformo en un array en PHP con la función parse_ini_file(), pero el problema es que los ...
  #1 (permalink)  
Antiguo 21/07/2011, 21:42
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Problema con valor boolean en .ini

Hola amigos, tengo un archivo .ini que luego lo transformo en un array en PHP con la función parse_ini_file(), pero el problema es que los valores booleanos quedan guardados en el array como un string "1".

Tengo esto en el ini:

Código:
[seccion]
miPropiedad = true
Lamentablemente al hacer un var_dump me sale:
Código:
["miPropiedad"]=> string(1) "1"
Intenté también poniendo TRUE (así con mayúsculas) y PHP me lo sigue interpretando como un string "1".

Si los valores booleanos no se ponen así, entonces, ¿Cuál es la manera correcta?

Muchas gracias y saludos! :)
  #2 (permalink)  
Antiguo 21/07/2011, 22:03
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Problema con valor boolean en .ini

¿Con que estás interpretando el INI?

Recuerda que un archivo de texto almacena solo texto, aunque el valor sea numérico es texto.

Así mismo con los booleanos, solo existen en abstracto, así que no puedes parsear un valor "boolean" y esperar que éste sea un boolean en php, simplemente no tiene sentido.

Es por eso que dicho valor se interpreta false => 0, true => 1, una simple comparación no estricta lo dice todo:
Código PHP:
if (true == "1"// ... OK 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 21/07/2011, 22:08
de-troit
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Problema con valor boolean en .ini

Cita:
Iniciado por pateketrueke Ver Mensaje
¿Con que estás interpretando el INI?

Recuerda que un archivo de texto almacena solo texto, aunque el valor sea numérico es texto.

Así mismo con los booleanos, solo existen en abstracto, así que no puedes parsear un valor "boolean" y esperar que éste sea un boolean en php, simplemente no tiene sentido.

Es por eso que dicho valor se interpreta false => 0, true => 1, una simple comparación no estricta lo dice todo:
Código PHP:
if (true == "1"// ... OK 
Acabo de solucionar el problema justo antes, y tienes razón, sólo bastó con hacer un casting (bool) en la condición y listo.

Los valores false queda como string "" y los true como "1".

Muchas gracias por tu ayuda. Saludos!

Etiquetas: boolean, ini
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:47.