jul*_*lio 28 javascript php 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>";
Run Code Online (Sandbox Code Playgroud)
问题是如果DB中"myvar"的布尔值是false
,那么$ js中myvar的实例是null,而不是false
,这就破坏了脚本.
有没有办法将值正确传递false
给myvar变量?
谢谢!
Mar*_*c B 61
用json_encode()
.它将从本机PHP类型转换为本机Javascript类型:
var myvar = <?php echo json_encode($my_var); ?>;
Run Code Online (Sandbox Code Playgroud)
并将照顾任何必要的转义,将其转换为有效的JavaScript.
这是最简单的解决方案:
只需在$ 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>";
Run Code Online (Sandbox Code Playgroud)
注意:var_export()与PHP 4.2.0+兼容