PHP isset:这是多余的吗?

时间:2014-02-14 11:07:16

标签: php forms isset

我的表单提交后,我总是检查表单是否为isset,然后检查所有字段是否也是isset

这是我的php代码:

if(isset($_POST)) {
  if(isset($_POST['username'], $_POST['password'])) {
    // process
  }
}

我的问题是,我首次检查isset是否表单本身已提交,然后再次检查每个input是否isset或我使用的时刻

if(isset($_POST)) { }

它会实际检查该表单中的字段吗?

我希望你事先得到我的意见。

3 个答案:

答案 0 :(得分:8)

嗯,总是设置$_POST,所以不需要第一个语句。只检查是否设置了特定字段。

编辑:如评论中所述,isset()仅为您提供信息,如果设置了某个变量,则不会为您提供某些值。 empty()可以告诉你,如果你有内容。

编辑2:为确保empty()在未定义的POST字段中是否会注意到您,请尝试以下操作:

error_reporting(E_ALL);
var_dump(empty($_POST['undefined']));

您将看到empty()也适用于未定义的索引。

答案 1 :(得分:1)

如果要检查是否已发送帖子索引,如果它包含空字符串或某些数据使用array_key_exists(),则无需重置:

if(array_key_exists($_POST['foo']) && array_key_exists($_POST['bar'])) ..

答案 2 :(得分:-1)

WTF ??

更好使用$ _SERVER ['REQUEST_METHOD']

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
// process
}