有人如何巧妙地检查 4 个变量是否相同?
显然这是行不通的:
if ($var1 === $var2 === $var3 === $var4)
但是,如果不编写大量代码会怎样?
有人如何巧妙地检查 4 个变量是否相同?
显然这是行不通的:
if ($var1 === $var2 === $var3 === $var4)
但是,如果不编写大量代码会怎样?
一种方法是:
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
您可以使用 !作为你的主人并使用 &&
if($var1===$var2 && $var1 === $var3 && $var1 === $var4)
但这不会让您知道这 4 个中的哪一个与其他的不同。
如果您要处理许多变量,我使用了下面的代码并且它可以工作。
$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.