【发布时间】:2011-09-25 12:52:07
【问题描述】:
我有一个从数据库生成的无序列表。根据返回字段之一的值,应将 li 标记的类设置为不同的值。不幸的是,他们都返回“不活动”。我知道这一定很简单,但我已经盯着它看了好几个小时了,还是没看到。
代码如下:
<ul class="tabs">
<? foreach ($tracks AS $track) {
$active = (strtolower($track->shortname === 'dpp')) ? ' class="active"' : 'class="inactive"';
echo "<p>".strtolower($track->shortname). " is ".$active."</p>"; ?>
<li <?= $active; ?>><a href="#<?= strtolower($track->shortname); ?>"><?= $track->name; ?></a></li>
<? } ?>
</ul>
以下是实际打印的内容:
<ul class="tabs">
<p>dpp is class="inactive"</p> <li class="inactive"><a href="#dpp">Digital Path to Purchase</a></li>
<p>cre is class="inactive"</p> <li class="inactive"><a href="#cre">Fueling Creativity</a></li>
</ul>
很明显第一个是返回$track-shortname of dpp,那么为什么$active变量没有设置为“class=active”呢?
【问题讨论】:
-
注意括号:
strtolower($track->shortname === 'dpp')=>strtolower($track->shortname) === 'dpp'
标签: php variables if-statement ternary-operator