【问题标题】:Inline PHP / HTML Ternary If内联 PHP / HTML 三元 If
【发布时间】:2013-04-30 15:15:36
【问题描述】:
我正在尝试执行以下操作:
<li <?PHP ($this->pageName == 'index' ? ?>class="current"<?PHP : '')?>><a href="">Home</a></li>
但它不起作用。
我想要实现的目标可能吗?如果是这样,我做错了什么?
我知道将 PHP 放入 HTML 中并不难,哈哈。我很好奇是否可以以类似于以下方式使用三元运算符:
<?PHP if(1 == 1){?>
<p>Test</p>
<?PHP }?>
【问题讨论】:
标签:
php
html
ternary-operator
【解决方案1】:
您所做的只会返回值“class='current'”。您仍然需要 ECHO/PRINT 才能应用它。
下面的代码应该可以正常工作。
<li class="<?PHP echo ($this->pageName == 'index')? 'current': ''; ?>">
<a href="#">Home</a>
</li>
我刚刚在这里所做的是将 class 属性放在 php 之外,以使事情更整洁,并在这种情况下“当前”回显三元返回的值,如果该值的计算结果为 true。
出于测试目的,您可以尝试下面的代码行来切换正在比较的值。
<li class="<?PHP echo ( 1 == 0 )? 'current': ''; ?>">
<a href="#">Home</a>
</li>
【解决方案2】:
另外,你可以使用 PHP 的简写,我不太确定你想做什么,但是有一个想法,看看这段代码,看看你是否能弄明白:
<li <?=($this->pageName == 'index') ? "class='current'" : ''?>><a href="">Home</a></li>
括号()中的所有内容都是 if 条件\比较。这
【解决方案3】:
<li <?PHP ($this->pageName == 'index') ? ?> class="current" <?PHP : '' ?>><a href="">Home</a></li>
我怀疑你正在尝试做的事情甚至会起作用,因为三元运算符的逻辑是
if condition ? Yes/true : No/false ;
在您的代码段中替换Yes/true 的是什么?