-2

我遍历表单的值,以检查每个字段是否有 4 位数字。我的问题是目前它仅在第一个字段的匹配项上验证真或假$card1...

function cardcheck ($card1,$card2,$card3,$card4)
{
    $cards = array($card1,$card2,$card3,$card4);
    $regex = "/[0-9]{4}/";
    for ($i=0;$i<4;$i++)
    if (! preg_match ($regex,$cards[$i]))
    {
        return false;
    }
    else
    {
        return true;
    }
}
4

2 回答 2

3

return ...每次都在第一次迭代中返回(通过使用)某些东西(带有 else 的布尔条件)。

您需要将return true循环语句放在外面:

function cardcheck ($card1,$card2,$card3,$card4)
{
    $cards = array($card1,$card2,$card3,$card4);
    $regex = "/[0-9]{4}/";
    for ($i=0;$i<4;$i++) {
        if (! preg_match ($regex,$cards[$i])) {
            return false;
        }
    }
    return true;
}
于 2013-08-09T13:12:54.777 回答
3
function cardcheck ($card1,$card2,$card3,$card4)
{
    $cards = array($card1,$card2,$card3,$card4);
    $regex = "/[0-9]{4}/";

    for ($i=0;$i<4;$i++)
       if (! preg_match ($regex,$cards[$i]))
       {
           return false;
       }

    return true;
}
于 2013-08-09T13:12:54.807 回答