将三元运算符更改为if语句

时间:2018-07-18 13:16:43

标签: php if-statement ternary-operator

您好,我在互联网上的一段代码中找到了我想使用的东西,但是其中有一个问号,作为if / else语句。我要更换?加上我代码中的if / else语句。

  $median = (count($athleticsArr) % 2 == 0) 
            ? (($athleticsArr[(count($athleticsArr) / 2) - 1] + $athleticsArr[(count($athleticsArr) / 2)]) / 2) 
            : ($athleticsArr[floor(count($athleticsArr) / 2)]);

3 个答案:

答案 0 :(得分:1)

<?php
if(count($athleticsArr) % 2 == 0)){
    $median = (($athleticsArr[(count($athleticsArr) / 2) - 1] + $athleticsArr[(count($athleticsArr) / 2)]) / 2);
      }else{
    $median = ($athleticsArr[floor(count($athleticsArr) / 2)]);
     }
?>

当您看到三元运算符时,可以按原样将其分为三部分, condition ? yes : no

?适用于if语句,:适用于else语句,尝试用简单的方法做一两个,您肯定会得到

答案 1 :(得分:1)

这是一个采用一些最佳实践的代码段,例如仅调用一次函数。它还使用“按位比较” & 1来确定计数是否为奇数。我们都假设您的数组值已经排序。

代码:(Demo

$array = [1,3,4,7,11,16,19,21];   // output: 9
// $array = [1,3,4,7,11,16,19];   // output: 7

$count = sizeof($array);   // cache the count
$index = floor($count/2);  // cache the index
if (!$count) {
    echo "no values";
} elseif ($count & 1) {    // count is odd
    echo $array[$index];
} else {                   // count is even
    echo ($array[$index-1] + $array[$index]) / 2;
}

*当然您会在$median =所在的echo处进行交换。

答案 2 :(得分:0)

使用此代码:

<?php
if (count($athleticsArr) % 2 == 0) {
    $median=(($athleticsArr[(count($athleticsArr) / 2) - 1] + $athleticsArr[(count($athleticsArr) / 2)]) / 2);
} else{
    $median=($athleticsArr[floor(count($athleticsArr) / 2)]);
}
?>

要这样做,您应该遵循以下步骤:

$variable=condition ? DoIf : DoElse;  = if(condition){DoIf}else{DoElse}