現在、次のアプローチを使用して、、、、またはのいずれかを判別してい$userlevel
ます。10
20
30
if ( in_array( $userlevel, array( 10, 20, 30 ) ) ) {
}
これを行うためのより良い方法はありますか?
あなたはすでに「より良い方法」を使用しています。代替案は
if ($userlevel == 10 || $userlevel == 20 || $userlevel == 30) {
}
通常if
、行が長くなりすぎるように可能な値の数が増えるまで基本的なステートメントを記述し、次にそれらをコレクションに移動して使用しますin_array
。
$userlevel
それが常にこれらの値の1つであることがわかっている場合は、それが上限と下限の間にあることをテストするだけで済みますが、これは現在の記述方法よりも短くなることはありません。
「より良い」方法はないと思います。それはあなたが将来開発することからあなたが選択したい価値を期待するものに依存します。途切れることなくスイッチを使用できます。
switch ($userlevel) {
case 10: case 20: case 30
// ..
break;
default:
// ..
}
もちろん、このin_array
ソリューションには大きなメリットがあります。決定配列を変数に格納し、他の場所から影響を与えることができます。
in_arrayと比較するより良い方法はありません。