可以AnyOne解释这个代码我

时间:2013-06-04 08:27:12

标签: php

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

任何人都可以解释一下这段代码吗?

3 个答案:

答案 0 :(得分:10)

表达式[a] ? [b] : [c]称为ternary operator。它与此功能相同:

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

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

$odd = !$odd$oddtrue之间切换false的值。

代码可能在一个循环中使用,该循环打印交替具有类odd_roweven_row的表行,然后可以使用CSS对它们进行不同的样式设置。

答案 1 :(得分:3)

这意味着

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

并称为ternary operator

然后通过$odd = !$odd;,此变量的值被“翻转”。我想这样做是为了使下一行“均匀”。

答案 2 :(得分:0)

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

$odd= true;

这使用了一个叫做三元运算符的东西打印出一个字符串。 如果$odd为真,它将打印第一位,如果不是则打印第二位。正如您之前将$odd设置为true,它将始终打印第一位

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

这会将$odd设置为!(不是)$odd,因此将布尔值反转为false     $ odd =!$ odd;

很抱歉文字解释,但我想彻底