PHP If语句if (!$_POST)
- !$_POST
是什么意思?
例如,在我正在查看的一些遗留代码中,代码如下:
<form action="paypalorders.php" method="POST">
<input type="hidden" name="orderList" value="' . $orderList . '">
<input type="submit" value="Archive">
</form>';
if (!$_POST) {
file_put_contents('/orders.txt', $output_line1);
}
我看过一堆其他的帖子,还没有看到这个问题被问到,所以我试着找出它是什么。我见过这样格式化它的线程:
if(!empty($_POST)) {
但和我要找的不太一样。这是同样的事情,只是速记吗?我不确定,所以我才问你。我在谷歌上到处搜索,看了一些帖子,但我仍然不确定。
谢谢。
发布于 2018-08-16 05:41:10
由于$_POST是一个数组,如果它是空的,那么他的值就是null,所以if(!$_POST)将如下所示:
if(!null){
//code
}
下面的代码返回true或false,但两者的目标是相同的。
if(!empty($_POST)){
//code
}
希望能对你有所帮助!
发布于 2018-08-16 05:45:48
如果$array
包含元素,则(bool)$array
的计算结果为true
,如果为空,则计算结果为false
。
由于$_POST
是一个数组,因此如果$_POST
为空,则!$_POST
返回true
。
另一种解释方法是,在未通过HTTP POST方法访问此页面的情况下执行条件任务。
发布于 2018-08-16 05:45:27
当您将数组转换为bool时,如果数组为空(例如,如果count($arr)为===0),它将被转换为bool(false),否则将被转换为bool(true)。!
将它正在检查的任何内容强制转换为bool。因为$_POST总是存在的,所以if (!$_POST) {
和if(empty($_POST)) {
做的是完全相同的事情,它们检查$_POST是否为空。这甚至不是关于遗留代码,这对于7.3.0仍然是完全有效的。这两种方法之间的区别只有当你检查变量时才会变得明显,即如果-error不存在,!$arr
将发送Notice: Undefined variable
-error,empty($arr)
不会。
https://stackoverflow.com/questions/51866762
复制相似问题