PHP到javascript实现中的布尔变量值

时间:2011-04-01 19:08:40

标签: php javascript boolean-expression

我在写一个PHP脚本时遇到了一个奇怪的问题 - 我确信答案很简单,但我没有看到它。

我使用PHP从数据库中提取一些变量,然后将这些值传递给在PHP中动态构建的Javascript。像这样:

$myvar = (bool) $db_return->myvar;

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

问题是如果DB中“myvar”的布尔值是false,那么$ js中的myvar实例为空,而不是false,这打破了脚本

有没有办法将值false正确传递给myvar变量?

谢谢!

3 个答案:

答案 0 :(得分:58)

使用json_encode()。它将从本机PHP类型转换为本机Javascript类型:

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

并且还将处理将其转换为有效javascript所需的任何转义。

答案 1 :(得分:5)

这是最简单的解决方案:

在$ js中使用 var_export($ myvar)代替 $ myvar ;

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

注意:var_export()与PHP 4.2.0 +

兼容

答案 2 :(得分:3)

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