Currently I'm using the following approach to determine if $userlevel
is either 10
, 20
, or 30
.
if ( in_array( $userlevel, array( 10, 20, 30 ) ) ) {
}
Is there a better way to do this?
您已经在使用“更好的方法”。替代方案是
if ($userlevel == 10 || $userlevel == 20 || $userlevel == 30) {
}
通常,您会编写一个基本if
语句,直到可能值的数量增加以至于该行变得太长,然后您将它们移动到一个集合中并使用in_array
.
如果您知道这$userlevel
将始终是这些值之一,您可以简单地测试它是否在上限/下限之间,但这不会比您现在编写的方式短。
我认为没有“更好”的方法。这取决于您期望从中选择的价值观在未来发展。您可以使用没有中断的开关。
switch ($userlevel) {
case 10: case 20: case 30
// ..
break;
default:
// ..
}
当然,该in_array
解决方案有很大的好处。您可以将决策数组存储在一个变量中,并能够从其他地方影响它。
没有比 in_array 更好的方法了。