3

以下のコードには、それ自体を繰り返すコードの塊があります。コードが繰り返されないように、これを別の方法で行うことはできますか?何をしようとも、同じことで終わります。以下のコードですが、製品版ではさらに多くのコードが含まれています。これは国の場所を行います。

if ($GL)
{
 echo 'Managed to find your location';
}else{
 echo "Could not identify GL. Please select from the list below.";
}

これがすべてです(取り除いて)。

$GL = false; //GL is detected using ip to location, and returns boolean
$location = 'UK';//Read from a cookie.

if(isset($location))
{
    echo 'We found a cookie with your location<br />';

    if(array_key_exists($location,$countries))
    {
        echo 'We found a country in the array. Carrying on<br />';
    }else
    {
        echo 'Did not find a country in the array. Looking for GL';
        if ($GL)
        {
            echo 'Managed to find your location. Carrying on';
        }else{
            echo "Could not identify GL. Please select from the list below.";
            }
    }
}
else
{
    echo 'Did not find a location cookie<br />';

    if ($GL)
    {
        echo 'Managed to find your location.Carrying on.';
    }else{
        echo "Could not identify GL. Please select from the list below.";
    }

}
4

3 に答える 3

3

あなたができるいくつかの簡単な解決策があります。そのような:

1)それを関数に入れます:

function validGL($GL)
{
    if ($GL)
    {
        echo 'Managed to find your location.Carrying on.';
    }
    else
    {
        echo "Could not identify GL. Please select from the list below.";
    }
}

2)ブール値を格納して、有効な場所が見つかったかどうかを判断します。

$GL = false; //GL is detected using ip to location, and returns boolean
$location = 'UK';//Read from a cookie.

$locationFound = false;

if(isset($location))
{
    echo 'We found a cookie with your location<br />';

    if(array_key_exists($location,$countries))
    {
        echo 'We found a country in the array. Carrying on<br />';

        $locationFound = true;
    }
    else
    {
        echo 'Did not find a country in the array. Looking for GL';
    }
}
else
{
    echo 'Did not find a location cookie<br />';
}

if (!$locationFound)
{
    if ($GL)
    {
        $GL_msg = 'Managed to find your location. Carrying on';
    }
    else
    {
        $GL_msg = "Could not identify GL. Please select from the list below.";
    }
}
于 2012-12-20T03:19:45.660 に答える
1

次のように言い換えることができます。

  1. 場所が渡され、有効な国のリスト内で見つかった場合は、それを使用します。

  2. そうでない場合、GLが見つかった場合は、それを使用します。

  3. 他のすべてが失敗した場合はリストを表示します。

コード内:

if (isset($location) && array_key_exists($location,$countries)) {
    echo 'We found a country in the array. Carrying on<br />';
} elseif ($GL) {
    echo 'Managed to find your location. Carrying on';
} else {
    echo "Could not identify GL. Please select from the list below.";
}
于 2012-12-20T03:51:19.653 に答える
0

これを関数にして、GL変数を使用してその関数を呼び出すことができます。このようにして、何度も同じことを繰り返す必要はありません。

于 2012-12-20T03:16:18.720 に答える