目前,我正在做这样的事情:
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 需要一次性 O(n) 成本,然后检查匹配项是 O(1)。
您可以使用switch case语句针对多个值检查变量。
请参考下面提到的代码片段
例如
switch($a)
{
case 'a':
//do something
break;
case 'b':
//do something
break;
case 'c':
//do something
break;
}