PHP:测试三个变量是否相等

时间:2011-01-15 23:48:07

标签: php variables equality

我之前从未遇到过这种情况,但您如何测试三个变量是否相同?以下,显然不起作用,但我想不出一种优雅(和正确)的方式来编写以下内容:

if ($select_above_average === $select_average === $select_below_average) { }

5 个答案:

答案 0 :(得分:58)

if ((a == b) && (b == c)) {
   ... they're all equal ...
}

transitive relation

答案 1 :(得分:21)

$values = array($select_above_average, $select_average, $select_below_average);

if(count(array_unique($values)) === 1) {
    // do stuff if all elements are the same
}

这是另一种方法。

答案 2 :(得分:8)

if ($select_above_average === $select_average
    && $select_average === $select_below_average) { }

答案 3 :(得分:5)

你已经得到了亚当的答案,但记住如何正确地做到这一点的一个好方法就是记住你应该用()括号进行单一验证,如果你只做一次检查那么你已经使用if 语句提供大括号。

示例:

如果 a === b

如果你做多次,那么

if( a === b && c = == d

如果你记得每一组大括号都是验证检查,你可以这样登录:

if((( a === b || c == = d ))&& e === f

if语句和许多其他逻辑操作在层次结构上工作,以便检查中的单个检查量对父检查产生影响。

如果a === bc === d失败,请执行上面的第三个示例,然后永远不会检查e === f,因为ab,cd包含在大括号中,以便返回并检查。

希望这会对你有所帮助。

答案 4 :(得分:1)

我有一个独特的情况,我需要查看三个数组中的项目数量是否与此方案相同。

这就是我提出的:

(假设字段,运算符和值都是数组)

$allfieldscount = array(count($fields), count($operators), count($values)); //store an array of the count of all the arrays.

$same = array_count_values($allfieldscount);//returns an array by values in the array.  We are looking to see only 1 item in the array with a value of 3.

if(count($same) != 1){
    //Then it's not the same
}else{
   //Then it's the same
}

这个策略计算不同数组中的字段,如果它们都相同则使用array_count_values,那么它返回的数组的数量将是' 1',如果它是其他任何东西那么它不一样。在php.net上查找array_count_values以了解更多内容。