目前,我正在做这样的事情:
if ( in_array ( $variable, ["a","b","c"] ) ) { ... }
哪个比
更容易阅读if ( $variable == "a" || $variable == "b" || $variable == "c" ) { ... }
但我想知道,是否有更有效的方法,而不是检查数组中的值?
答案 0 :(得分:2)
试试这个
$my_array = array_flip(array('a', 'b', 'c', 'd', ...));
if (isset($my_array[$variable])) ...
创建$ my_array会产生一次性O(n)成本,然后检查匹配是否为O(1)。
答案 1 :(得分:0)
您可以使用 switch case 语句来针对多个值检查变量。
请参阅下面提到的代码段
e.g。
switch($a)
{
case 'a':
//do something
break;
case 'b':
//do something
break;
case 'c':
//do something
break;
}