最好具体说明这些数据的预期位置,例如$_POST
:
if (!isset($_POST['name'], $_POST['phone'], $_POST['email'], $_POST['mobile'], $_POST['state'], $_POST['street'], $_POST['city'])) {
// something is up
}
您可以通过使用所需的字段名称创建一个数组来稍微缩短此代码:
$required_fields = array('name', 'phone', 'email', 'mobile', 'state', 'street', 'city');
然后可以将“检查存在”代码简化为:
foreach ($required_fields as $f) {
if (!isset($_POST[$f])) {
// something is up
}
}
更好的方式™
但是,您应该认真考虑将存在检查和验证/清理检查结合起来。PHP 提供了一系列过滤函数,您可以使用它们来验证和/或清理输入变量。例如,要获得与上述等效的行为:
$required_fields = filter_input_array(INPUT_POST, array(
'name' => FILTER_UNSAFE_RAW,
'email' => FILTER_VALIDATE_EMAIL,
));
if (is_null($required_fields) || in_array(null, $required_fields, true)) {
// some fields are missing
}
存在但未通过验证的字段将设置为false
,因此这是您检测此类事件的方式:
foreach ($required_fields as $name => $value) {
if (false === $value) {
// field $name failed validation (e.g. bad email format)
} elseif (!strlen(trim($value))) {
// field is empty
}
}