这是数组和 isset 的正确用法吗?


Is this the proper use of an array and isset?

所以我有这段代码,其中一部分是一个表单,所有字段都是绝对必需的。

只是找不到明确的文档来满足我验证所有内容的需求。

我会做这样的事情吗?

$foo = $_POST['foo'];
$bar = $_POST['bar'];
$lorem = $_POST['lorem'];
$ipsum = $_POST['ipsum'];
$isSet = array($foo, $bar, $lorem, $ipsum);
if(isset($isSet)) { /* Do the stuff */ }

还是有更好的方法?我真的不想做

if(isset($foo) && isset($bar) && isset($lorem)........ 

因为我有大约 12 个必填字段

你可以做:

if (isset($foo, $bar, $lorem, $ipsum)) {.....}

为您节省一步。

http://php.net/manual/en/function.isset.php

请记住,如果你有一个空字符串,isset将返回true。 所以,从技术上讲

isset($_POST['foo']) 

如果 foo 以空值传入,则返回 true:

foo=&bar=&...etc.

isset(array())

返回真;

如果 " 不是其中一个变量的有效值,则需要执行以下操作:

$requiredFields = array('foo', 'bar', 'lorem', 'ipsum');
$allValid = true;
foreach ($requireFields => $fieldName) {
    if (isset($_POST[$fieldName]) && $_POST[$fieldName] != "") {
        $allValid = $allValid && true;
    } else {
        $allValid = $allValid && false;
    }
}
if ($allValid) {
    //...success...
} else {
    //...failed...
}

您基本上检查变量是否已传递,以及变量是否未设置为 "。

希望有帮助。