将变量与2个值进行比较

时间:2012-07-07 16:04:31

标签: php

我有一个变量$var,它必须是一个两个,如果它不是,则抛出错误

if($var != "one" && $var != "two")
{
    exit('$var must be either one or two');
}

这很有效。但是,由于$var是一个字符串,并且只能保存一个值而不是两个值,所以我想知道这样写是不合逻辑的?

4 个答案:

答案 0 :(得分:5)

没关系,不合逻辑的代码是($var == 'one' && $var == 'two')

你正在检查它不是一个或两个 - 一个变量不能“不是”无穷无尽的价值。

答案 1 :(得分:3)

你可以这样试试:

$possible = Array( "one", "two" );
if(!in_array($var, $possible) ) {
    echo "$var can be either of: " . implode($possible, ", ");
}

这样,您可以稍后包含更多要检查的值。

答案 2 :(得分:2)

if( !( $var == "one" || $var == "two" ) )
{
    exit('$var must be either one or two');
}

这将是我检查$ var容器是“一”还是“两”的方式。正如其他答案所述,有其他选择,但为什么会使事情复杂化?

答案 3 :(得分:-1)

写下你写的东西是完全合乎逻辑的!

你写的是,IF $ var不是一个(这意味着它仍然可以是其他任何东西)和IF $ var也不是两个(它在这一点上你已经排除了两种可能性),然后抛出错误!

此外,ID建议您使用throw new Exception('Error Message');