php通过post方法发送错误的布尔值通过false或null?

时间:2018-08-22 21:23:34

标签: php

我正在通过post方法发送x= false;布尔值。是Request::post['x']$_POST['x']会获得布尔值false还是获得null值?

如果我尝试(!isset($_POST['x'] )),它会给我true。但是我不明白为什么。

2 个答案:

答案 0 :(得分:0)

如果$_POST['x']将包含null以外的任何内容,则isset()将返回true

答案 1 :(得分:0)

请注意,使用!(非逻辑运算符)意味着,如果未设置(!isset($_POST['x'] ))(即null),则true将返回x

$_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