PHP如果更短的话

时间:2010-08-03 03:11:41

标签: php if-statement

什么是真正的写作方式:

if ($variable == '(value1/value2/value3)' ) { }

它应该类似于:

if ($variable == 'value1' || $variable == 'value2' || $variable == 'value3') { }

只想缩短此代码(现在我使用switch)。

感谢。

3 个答案:

答案 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
        ...
}