【发布时间】:2013-08-22 23:20:06
【问题描述】:
假设我们有以下 ajax:
$.ajax({
url:'myURL.php',
data:{
ac:'do',
isDoable:false
}
});
现在在后端读取呼叫数据时,isDoable 是一个字符串,并尝试将其转换为布尔值:
$isDoable = (bool) $_REQUEST['isDoable'];
导致$isDoable 始终为true,即使发送为false。
当我遇到这个问题时,我放弃了,只是将其视为字符串if($_REQUEST['isDoable'] == 'true')
但我无法克服它!为什么会出现这种意外行为,有没有办法解决?
【问题讨论】:
-
如何在php中将字符串转换为布尔值:stackoverflow.com/questions/7336861/…
-
做一个
var_dump($_REQUEST),你会看到到底发生了什么。如果JS将true编码为文字字符串'false',那么非空字符串将始终评估为布尔值@ 987654332@ 在 php 中。 -
查询字符串始终为字符串,格式始终为
http://somedomain.com/ourpage?key=value。无论您使用 JavaScript 布尔值。从技术上讲,它只是一个字符串,只要它是一个查询字符串请求。您正在将 $ajax 与 Get 方法一起使用。因此它显然被视为字符串。你所做的正是正确的方法。
标签: php javascript jquery ajax boolean