PHP 中的布尔变量值到 javascript 的实现
我在编写的 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>";
问题是,如果数据库中“myvar”的布尔值为 false
,那么 $js 中的 myvar 实例为 null,而不是 false
,这破坏了脚本。
有没有办法正确地将值 false
传递到 myvar 变量中?
谢谢!
I've run into an odd issue in a PHP script that I'm writing-- I'm sure there's an easy answer but I'm not seeing it.
I'm pulling some vars from a DB using PHP, then passing those values into a Javascript that is getting built dynamically in PHP. Something like this:
$myvar = (bool) $db_return->myvar;
$js = "<script type=text/javascript>
var myvar = " . $myvar . ";
var myurl = 'http://someserver.com/ajaxpage.php?urlvar=myvar';
</script>";
The problem is that if the boolean value in the DB for "myvar" is false
, then the instance of myvar in the $js is null, not false
, and this is breaking the script.
Is there a way to properly pass the value false
into the myvar variable?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用 json_encode()。它将从本机 PHP 类型转换为本机 Javascript 类型:
并且还将处理将其转换为有效 javascript 所需的任何转义。
use
json_encode()
. It'll convert from native PHP types to native Javascript types:and will also take care of any escaping necessary to turn that into valid javascript.
这是最简单的解决方案:
只需在 $js 中使用 var_export($myvar) 而不是 $myvar 即可;
注意:var_export() 与 PHP 4.2.0+ 兼容
This is the simplest solution:
Just use var_export($myvar) instead of $myvar in $js;
Note: var_export() is compatible with PHP 4.2.0+