我通过post方法发送x= false;
布尔值。Request::post['x']
或$_POST['x']
将获取布尔型false
作为值还是获取null
值?
如果我尝试(!isset($_POST['x'] ))
,它会给我true
。但我不明白为什么。
发布于 2018-08-23 20:49:17
请注意,使用!
(非逻辑运算符)意味着如果未设置true
(即null),则(!isset($_POST['x'] ))
将返回true
。
$_POST
中的所有数据都是无类型的;它都是一个字符串。如果需要发送布尔值,一种选择是将字符串与"true"
或"false"
进行比较。
if ($_POST['x'] === "true") {
// True
} elseif ($_POST['x'] === "false") {
// False
} else {
// Error - not equal to true or false string
}
关于PHP中比较operators的说明:
如果$x
等于$y
,则$x == $y
返回true
如果$x
等于$y
并且它们属于同一类型,则$x === $y
返回true
发布于 2018-08-23 06:52:59
如果$_POST['x']
将包含除null
之外的任何内容,则isset()
将返回true
。
https://stackoverflow.com/questions/51975349
复制相似问题