如何正确地编写代码:
if ($variable == '(value1/value2/value3)' ) { }
它应该类似于:
if ($variable == 'value1' || $variable == 'value2' || $variable == 'value3') { }
我想让这段代码变得更短(现在我使用了switch
语句)。
谢谢。
如何正确地编写代码:
if ($variable == '(value1/value2/value3)' ) { }
它应该类似于:
if ($variable == 'value1' || $variable == 'value2' || $variable == 'value3') { }
我想让这段代码变得更短(现在我使用了switch
语句)。
谢谢。
尝试使用 in_array()
函数:
if (in_array($variable, array('value1', 'value2', 'value3'))) {}
如果你遇到一组由,分隔的值,在你的例子中,只需使用explode()
函数将其分割成数组,然后将该数组传入in_array()
函数即可:if (in_array($variable, explode('/', 'value1/value2/value3'))) {}
虽然这是一长串值,看起来似乎可以使用 strpos()
,但这不是处理包含多个值的分隔字符串的方法(应该使用上述的 explode()
):
if (strpos('value1/value2/value3', $variable) !== false) {}
strpos
函数获取类似于 "value1/val" 或 "ue1" 的值。 - Valentin Golevstrpos()
不是正确的方法,即使一开始看起来似乎很有道理 :) - BoltClockif(preg_match('/%$6^$%^-
jil9(&(((&&(&((&%%%88&value1^&^))&!@#!value2%^^&^^value3', '(value1/value2/value3)');` ?如果你问我,有时候你们就是没想清楚 ;) - karim79switch ($variable)
{
case "value1":
case "value2":
case "value3":
...
break;
default: // else
...
}
也可以更简短:
if (preg_match('#^(?:value1|value2|value3)$#', $variable) {
并不是说这是做事情的最佳方式。使用if和||语句的长方法虽然冗长但易于阅读,并且运行效率最高。
value[1-3]
可以通过适当的修改来适用于 PHP 的正则表达式。 - Cole Tobin
switch
。 - TRiG