$odd= true;
echo ($odd == true) ? '<tr class="odd_row">' : '<tr class="even_row">';
$odd = !$odd;
任何人都可以解释一下这段代码吗?
答案 0 :(得分:10)
表达式[a] ? [b] : [c]
称为ternary operator。它与此功能相同:
function ternary($a, $b, $c) {
if ($a)
return $b;
else
return $c;
}
除了三元运算符的参数是惰性求值(即实际执行[b]
和[c]
中只有一个)。
$odd = !$odd
在$odd
和true
之间切换false
的值。
代码可能在一个循环中使用,该循环打印交替具有类odd_row
和even_row
的表行,然后可以使用CSS对它们进行不同的样式设置。
答案 1 :(得分:3)
这意味着
if ($odd == true){
echo '<tr class="odd_row">';
}else{
echo '<tr class="even_row">';
}
然后通过$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;
很抱歉文字解释,但我想彻底