什么是真正的写作方式:
if ($variable == '(value1/value2/value3)' ) { }
它应该类似于:
if ($variable == 'value1' || $variable == 'value2' || $variable == 'value3') { }
只想缩短此代码(现在我使用switch
)。
感谢。
答案 0 :(得分:16)
尝试in_array()
:
if (in_array($variable, array('value1', 'value2', 'value3'))) {}
如果您确实将一组值分隔开来,在您的示例中为/
,只有explode()
,并且您将有一个数组插入in_array()
:
if (in_array($variable, explode('/', 'value1/value2/value3'))) {}
看起来您可能只使用strpos()
,因为它是一长串值,但不如何处理多个值的分隔字符串(使用{{ 1}}而是,如上所述):
explode()
答案 1 :(得分:2)
也更短:
if (preg_match('#^(?:value1|value2|value3)$#', $variable) {
不一定是最好的方法。很长一段路,只使用和||语句很容易阅读,即使它很长,也是最有效的。
答案 2 :(得分:2)
switch ($variable)
{
case "value1":
case "value2":
case "value3":
...
break;
default: // else
...
}