目前我正在使用以下方法来确定$userlevel
是10
,20
还是30
。
if ( in_array( $userlevel, array( 10, 20, 30 ) ) ) {
}
有更好的方法吗?
答案 0 :(得分:4)
您已经在使用“更好的方式”了。替代方案是
if ($userlevel == 10 || $userlevel == 20 || $userlevel == 30) {
}
通常,您会编写一个基本的if
语句,直到可能的值数量增加,使得该行变得太长,然后将它们移动到集合中并使用in_array
。
如果您知道$userlevel
总是是其中一个值,您可以简单地测试它是在上限/下限之间,但这不会短于你现在正在写它的方式。
答案 1 :(得分:3)
我认为没有“更好”的方式。这取决于您对未来发展中您希望选择的值的期望。你可以使用一个没有中断的开关。
switch ($userlevel) {
case 10: case 20: case 30
// ..
break;
default:
// ..
}
当然有
in_array
解决方案带来的巨大好处。您可以将决策数组存储在变量中,并且可以从其他位置对其进行影响。
答案 2 :(得分:0)
没有更好的方法与in_array进行比较。