我有一个变量$var
,它必须是一个或两个,如果它不是,则抛出错误
if($var != "one" && $var != "two")
{
exit('$var must be either one or two');
}
这很有效。但是,由于$var
是一个字符串,并且只能保存一个值而不是两个值,所以我想知道这样写是不合逻辑的?
答案 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');