我有一个函数,我在其中传递数组参数来验证它。然后在下一页我插入数组参数。如下:
function check_subject($sub_array)
{
foreach($sub_array as $value)
{
if (!empty($value))
{
if (!preg_match('/^[0-9a-zA-Z ]{2,20}$/', $value))
{
return "Not supported format";
}
}
}
}
我插入的其他页面为$errors[] = check_subject($g8_sub_vali);
,我将返回结果存储在$ error []数组中。
如果有任何其他事情如下所示,我打印错误。
if($errors)
{
foreach ($errors as $msg)
{
if(!empty($msg))
{
echo " - $msg<br />\n";
}
}
}
else
{
echo "There is no error";
}
但是我没有得到“没有错误”的else循环值。我认为从函数返回有一个问题。你能建议我吗?
答案 0 :(得分:0)
以这种方式回归
return(array("Not supported format"));
答案 1 :(得分:0)
因为你正在制作: -
$errors[] = check_subject($g8_sub_vali);
即使您正在检查有效条目,该行也会向数组附加一个null,因为函数将返回null。
因此,如果您想要阻止这种情况,您应该: -
$err = check_subject($g8_sub_vali);
if(empty($err)==false)
$errors[] = $err;
这将为您提供有效的错误值,如果没有错误,您将进入else循环。
答案 2 :(得分:0)
试试这个,
$errors = array();
if($err = check_subject($g8_sub_vali)){
$errors[] = $err;
}
答案 3 :(得分:0)
使用此
function check_subject($sub_array)
{
$array = [];
foreach($sub_array as $value){
if (!preg_match('/^[0-9a-zA-Z ]{2,20}$/', $value))
{
array_push($array, $value.' - Not supported format');
}
}
return $array;
}
如果value不包含alpha numberic值,array_push会将消息添加到数组的末尾。
答案 4 :(得分:0)
尝试此操作以显示哪些主题不受支持格式:
功能:
function check_subject($sub_array) {
$results = array();
foreach ($sub_array as $value) {
if (!empty($value) && preg_match('/^[0-9a-zA-Z ]{2,20}$/', $value)) {
array_push($results, false);
}
else {
array_push($results, true);
}
}
return $results;
}
继续:
$errors = check_subject($g8_sub_vali);
foreach ($errors as $key=>$error) {
if ($error) {
echo "error on subject number " . ($key+1);
// do more stuff
}
}