在PHP中将变量与多变量进行比较

时间:2018-01-28 17:39:36

标签: php if-statement

我有5个变量$ a $ b $ c $ d $ e。这些变量具有数值。我试图比较这些变量,其中每个变量将与其余变量进行比较,如果条件为真,它会回应一些东西。这是我的代码

FXTO.HK

结果在第一个条件下停止,即使它是假的,它应该将它传递给其他条件。

5 个答案:

答案 0 :(得分:3)

一些不同的方法:

$a = 1;
$b = 3;
$c = 4;
$d = 5;
$e = 0;

// Make array [a=>1, b=>3...] 
$arr = compact('a','b','c','d','e');
// Sort it in descending order with saving keys
arsort($arr);
// Get the 1st key
echo 'I\'m ' . strtoupper(key($arr)); // I'm D

答案 1 :(得分:2)

首先 - 您在($b && $c && $d && $e)附近有括号,这意味着在$a > ($b && $c && $d && $e)中,($b && $c && $d && $e)的结果将首先计算,然后将与$a进行比较

因此,$a > ($b && $c && $d && $e) 不是

  

$a大于$b$a大于$c等。

  

$a大于($b$c以及$d$e

的结果

$b and $c and $d and $e的结果是 true false

因此,最后您要比较$a > true$a > false。根据{{​​1}}的值,您可以得到不同的结果。

在一个简单的例子中,如果你想检查一些东西是否比其他东西更重要,你需要写一个像这样的条件:

$a

您可以在其他用户的修道中找到其他更棘手的解决方案。

答案 2 :(得分:0)

您可以迭代五个变量并跟踪具有最高值的变量。

for ($i='a', $x = 0, $max = 'x'; $i <= 'e'; $i++) {
    if ($$i > $$max) {
        $max = $i;
    }
}
$result = "<div>I'm " . strtoupper($max) . "</div>";

答案 3 :(得分:0)

我认为你应该避开android:fillViewport="true"语句;)这是一个没有它们的解决方案,可以与任意数量的变量一起使用。您可以使用if作为函数列表的索引,并使程序可扩展。

$key

答案 4 :(得分:0)

试试这个:

$array = ['A'=>$a,'B'=>$b,' C'=>$c,'D'=>$d,'E'=> $e];
$maxs = array_keys($array, max($array));
foreach ($maxs as $maxi ) 
  echo '<div>Im '.$maxi.'</div>."<br>"';

这种方式涵盖了多个最大值的情况。

有关其工作原理的详情,请参阅this answer