-2

フォームの値をループして、各フィールドが 4 桁であることを確認します。私の問題は、現在、最初のフィールドの一致でのみ true または false を検証すること$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 に答える