我正在尝试运行foreach循环来检查表单中的某个必填字段是否为空,并通过错误数组输出缺少的字段.每个变量都分配给$ _POST变量.
但是,一旦我调用该函数:
fields_empty($requiredFields, $fieldErrors);
Run Code Online (Sandbox Code Playgroud)
它只运行一次,而不是循环错误.这是完整的源代码:
$requiredFields = array(
"First Name"=>$fname,
"Last Name"=>$lname,
"Email"=>$email,
"Password"=>$pass1,
"Confirm Password"=>$pass2,
"Country"=>$country,
"Address 1"=>$addr1,
"City"=>$city,
"State"=>$state,
"Postal Code"=>$pcode,
"Phone Number"=>$phone
);
$fieldErrors = array();
function fields_empty($requiredFields, $fieldErrors) {
global $fieldErrors;
foreach($requiredFields as $name => $field) {
if (empty($field)) {
array_push($fieldErrors, "$name is required.<br>");
return true;
}
}
}
fields_empty($requiredFields, $fieldErrors);
print_r($fieldErrors);
Run Code Online (Sandbox Code Playgroud)
浏览器输出:
Array (
[0] => First Name is required.
)
Run Code Online (Sandbox Code Playgroud)
此外,这只发生在函数中.如果我在没有函数的情况下执行它,它会显示所有缺少的字段.
从函数中删除返回.什么回报确实是终止函数并返回无论是与通过回归其设置,这里真.删除返回将使循环继续运行.
function fields_empty($requiredFields, $fieldErrors) {
global $fieldErrors;
foreach($requiredFields as $name => $field) {
if (empty($field)) {
array_push($fieldErrors, "$name is required.<br>");
}
}
}
Run Code Online (Sandbox Code Playgroud)