Php if($ _ POST)vs if(isset($ _ POST))

Ayc*_*şıt 3 php post isset

我有一个简单的表格,如下所示:

<form action="" method="post">
  <input type="text" />
  <input type="submit" value="SEND" />
</form>
Run Code Online (Sandbox Code Playgroud)

当我尝试接收从此表单发送的数据时if($_POST),我失败了,但在尝试时isset,我成功了.

if($_POST){
  echo 'a'; //Doesn't print anything.
}
if(isset($_POST)){
  echo 'b'; //Prints 'b'
}
Run Code Online (Sandbox Code Playgroud)

我猜其背后的原因是我的表单输入中缺少name属性,但我无法理解为什么if($_POST)isset($_POST)在这种情况下采取不同的方式.

Que*_*tin 13

isset 确定变量是否已设置且不为NULL.$_POST将始终设置并始终是一个数组.

没有isset你只是测试价值是否真实.一个空数组($_POST如果你没有发布任何数据将是这样)将不是真的.