首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP If语句if ( !$_POST ) -!$_POST是什么意思?

PHP If语句if ( !$_POST ) -!$_POST是什么意思?
EN

Stack Overflow用户
提问于 2018-08-16 05:33:06
回答 3查看 5.1K关注 0票数 5

PHP If语句if (!$_POST) - !$_POST是什么意思?

例如,在我正在查看的一些遗留代码中,代码如下:

代码语言:javascript
复制
    <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);
}

我看过一堆其他的帖子,还没有看到这个问题被问到,所以我试着找出它是什么。我见过这样格式化它的线程:

代码语言:javascript
复制
if(!empty($_POST)) {

但和我要找的不太一样。这是同样的事情,只是速记吗?我不确定,所以我才问你。我在谷歌上到处搜索,看了一些帖子,但我仍然不确定。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2018-08-16 05:41:10

由于$_POST是一个数组,如果它是空的,那么他的值就是null,所以if(!$_POST)将如下所示:

代码语言:javascript
复制
if(!null){
  //code 
}

下面的代码返回true或false,但两者的目标是相同的。

代码语言:javascript
复制
if(!empty($_POST)){
  //code
}

希望能对你有所帮助!

票数 2
EN

Stack Overflow用户

发布于 2018-08-16 05:45:48

如果$array包含元素,则(bool)$array的计算结果为true,如果为空,则计算结果为false

由于$_POST是一个数组,因此如果$_POST为空,则!$_POST返回true

另一种解释方法是,在未通过HTTP POST方法访问此页面的情况下执行条件任务。

票数 2
EN

Stack Overflow用户

发布于 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)不会。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51866762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档