変数は1 つまたは2 つ$var
でなければならず、そうでない場合はエラーをスローします
if($var != "one" && $var != "two")
{
exit('$var must be either one or two');
}
これは機能します。ただし$var
、文字列であり、両方ではなく1つの値しか保持できないため、そのように書くのは論理的ではないのでしょうか?
変数は1 つまたは2 つ$var
でなければならず、そうでない場合はエラーをスローします
if($var != "one" && $var != "two")
{
exit('$var must be either one or two');
}
これは機能します。ただし$var
、文字列であり、両方ではなく1つの値しか保持できないため、そのように書くのは論理的ではないのでしょうか?
それは結構です、非論理的なコードは($var == 'one' && $var == 'two')
1つまたは2つではないことを確認しています-変数は無限の量の値になることはできません。
次のように試すことができます。
$possible = Array( "one", "two" );
if(!in_array($var, $possible) ) {
echo "$var can be either of: " . implode($possible, ", ");
}
このようにして、後でチェックする値をさらに含めることができます。
if( !( $var == "one" || $var == "two" ) )
{
exit('$var must be either one or two');
}
これは、$var コンテナーが「1」か「2」かを確認する方法です。他の回答で述べたように、代替手段がありますが、なぜ物事を複雑にするのですか?
あなたが書いたものを書くことは完全に論理的です!
あなたが書いているのは、IF $var is not one (つまり、それはまだ他のものである可能性があることを意味します) AND IF $var is also not two (この時点で、両方の可能性を除外しました)、THEN エラーをスローします!
また、使用することをお勧めしますthrow new Exception('Error Message');