operadores logicos float empty boolval array php javascript boolean-expression

float - operadores logicos php



Valores de variables booleanas en PHP para implementación javascript (3)

Esta pregunta ya tiene una respuesta aquí:

Me he encontrado con un problema extraño en un script PHP que estoy escribiendo. Estoy seguro de que hay una respuesta fácil pero no la veo.

Estoy extrayendo algunos vars de una base de datos usando PHP, y luego pasando esos valores a un Javascript que se está construyendo dinámicamente en PHP. Algo como esto:

$myvar = (bool) $db_return->myvar; $js = "<script type=text/javascript> var myvar = " . $myvar . "; var myurl = ''http://someserver.com/ajaxpage.php?urlvar=myvar''; </script>";

El problema es que si el valor booleano en la base de datos para "myvar" es false , entonces la instancia de myvar en el $ js es nula, no false , y esto está rompiendo el script.

¿Hay alguna manera de pasar correctamente el valor false a la variable myvar?

¡Gracias!


Esta es la solución más simple:

Simplemente use var_export ($ myvar) en lugar de $ myvar en $ js;

$js = "<script type=text/javascript> var myvar = " . var_export($myvar) . "; var myurl = ''http://someserver.com/ajaxpage.php?urlvar=myvar''; </script>";

Nota: var_export() es compatible con PHP 4.2.0+


utilizar json_encode() . Se convertirá de tipos de PHP nativos a tipos de Javascript nativos:

var myvar = <?php echo json_encode($my_var); ?>;

y también se encargará de cualquier escape necesario para convertirlo en un javascript válido.


$js = "<script type=text/javascript> var myvar = " . ($myvar ? ''true'' : ''false'') . "; var myurl = ''http://someserver.com/ajaxpage.php?urlvar=myvar''; </script>";