現在、私は次のようなことをしています:
if ( in_array ( $variable, ["a","b","c"] ) ) { ... }
よりも少し読みやすい
if ( $variable == "a" || $variable == "b" || $variable == "c" ) { ... }
しかし、配列内の値をチェックする代わりに、もっと効率的な方法はあるのでしょうか?
現在、私は次のようなことをしています:
if ( in_array ( $variable, ["a","b","c"] ) ) { ... }
よりも少し読みやすい
if ( $variable == "a" || $variable == "b" || $variable == "c" ) { ... }
しかし、配列内の値をチェックする代わりに、もっと効率的な方法はあるのでしょうか?
このようにしてみてください
$my_array = array_flip(array('a', 'b', 'c', 'd', ...));
if (isset($my_array[$variable])) ...
これには、$ my_arrayを作成するための1回限りのO(n)コストがあり、一致するかどうかのチェックはO(1)です。
switch caseステートメントを使用して、変数を複数の値と照合できます。
下記のコードスニペットを参照してください
例えば
switch($a)
{
case 'a':
//do something
break;
case 'b':
//do something
break;
case 'c':
//do something
break;
}