4つの変数が同じかどうかをきちんと確認するにはどうすればよいでしょうか?
明らかにこれはうまくいきません:
if ($var1 === $var2 === $var3 === $var4)
しかし、大量のコードを書かなければどうなるでしょうか?
4つの変数が同じかどうかをきちんと確認するにはどうすればよいでしょうか?
明らかにこれはうまくいきません:
if ($var1 === $var2 === $var3 === $var4)
しかし、大量のコードを書かなければどうなるでしょうか?
1つの方法は次のとおりです。
if ($var1 === $var2 && $var2 === $var3 && $var3 === $var4)
膨大な量のコードではなく、仕事を成し遂げます。
if(!array_diff([$var2, $var3, $var4], [$var1])){
// All equal
}
if ($var1 === $var2 && $var3 === $var4 && $var1 === $var3)
2 と 4 が等しいかどうかを確認する必要はありません
を使用array_unique
すると、変数リストからの一意の値の配列が 1 であるかどうかを確認できます (つまり、それらはすべて等しいことを意味します)。
if (count(array_unique([$var1, $var2, $var3, $var4])) == 1)
// all equal
これは、ステートメント==
内のチェックの長いリストと比較して、変数の長いリストを比較する場合に特に便利です。if
多くの変数を扱っている場合は、以下のコードで遊んだところ、うまくいきました。
$m = 'var'; //Assuming you know the variable name format $var1, $var2, $var3,...
for( $n = 1; $n <= 3; $n++) { //testing for 4 variables
$v = "$m$n";
$n++;
$w = "$m$n";
if ( $$v !== $$w ) {
echo "false";
break;
}
$n--;
}
//Breaks and echo "false" as soon as one of the variables is not equal
//Note: increase the iteration for more variable.
使えます!マスターとして && を使用
if($var1===$var2 && $var1 === $var3 && $var1 === $var4)
しかし、これは4つのうちどれが他のものと似ていないかを教えてくれません.