-4
    $odd= true;
echo ($odd == true) ? '<tr class="odd_row">' : '<tr class="even_row">';
    $odd = !$odd; 

请问有人能解释一下这段代码吗?

4

3 回答 3

10

该表达式[a] ? [b] : [c]称为三元运算符。它与此功能相同:

function ternary($a, $b, $c) {
  if ($a)
    return $b;
  else
    return $c;
}

除了三元运算符的参数是惰性求值的(即只有一个[b][c]实际执行)。

$odd = !$odd在和$odd之间切换值。truefalse

该代码可能在循环中使用,该循环打印交替具有类odd_row 和的表格行,even_row然后可以使用 CSS 对其进行不同的样式设置。

于 2013-06-04T08:31:06.937 回答
3

这表示

if ($odd == true){
    echo '<tr class="odd_row">';
}else{
    echo '<tr class="even_row">';
}

并且被称为三元运算符

然后被$odd = !$odd;这个变量的值“翻转”。我想这样做是为了使下一行成为“偶数”。

于 2013-06-04T08:29:32.820 回答
0

这是将$odd变量设置为布尔值true

$odd= true;

这使用所谓的三元运算符来打印出一个字符串。如果$odd为真,它将打印第一位,如果不是,则打印第二位。正如您之前设置$odd的那样,它总是会打印第一位

echo ($odd == true) ? '<tr class="odd_row">' : '<tr class="even_row">';

这设置$odd!(不)$odd所以将布尔值反转为假 $odd = !$odd;

很抱歉字面上的解释,但我想彻底

于 2013-06-04T08:30:32.377 回答