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

2022-08-30 12:23:19

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

我使用PHP从数据库中提取一些vars,然后将这些值传递到在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>";

问题是,如果数据库中“myvar”的布尔值为 ,则$js中 myvar 的实例为 null,而不是 ,这会破坏脚本。falsefalse

有没有办法将值正确地传递到myvar变量中?false

谢谢!


答案 1

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

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

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


答案 2

这是最简单的解决方案:

只需在$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+ 兼容