2

現在、次のアプローチを使用して、、、、またはのいずれかを判別してい$userlevelます。102030

if ( in_array( $userlevel, array( 10, 20, 30 ) ) ) { 

} 

これを行うためのより良い方法はありますか?

4

3 に答える 3

4

あなたはすでに「より良い方法」を使用しています。代替案は

if ($userlevel == 10 || $userlevel == 20 || $userlevel == 30) {

}

通常if、行が長くなりすぎるように可能な値の数が増えるまで基本的なステートメントを記述し、次にそれらをコレクションに移動して使用しますin_array

$userlevelそれが常にこれらの値の1つであることがわかっている場合は、それが上限と下限の間にあることをテストするだけで済みますが、これは現在の記述方法よりも短くなることはありません。

于 2012-11-17T03:09:38.237 に答える
3

「より良い」方法はないと思います。それはあなたが将来開発することからあなたが選択したい価値を期待するものに依存します。途切れることなくスイッチを使用できます。

switch ($userlevel) {
    case 10: case 20: case 30
        // ..
        break;
    default:
        // ..
}

編集

もちろん、このin_arrayソリューションには大きなメリットがあります。決定配列を変数に格納し、他の場所から影響を与えることができます。

于 2012-11-17T03:17:09.200 に答える
0

in_arrayと比較するより良い方法はありません。

于 2012-11-17T05:48:16.620 に答える