内联PHP / HTML三元如果

时间:2013-05-06 19:40:16

标签: php html ternary-operator

我正在尝试执行以下操作:

<li <?PHP ($this->pageName == 'index' ? ?>class="current"<?PHP : '')?>><a href="">Home</a></li>

但它没有用。

我正在努力实现的目标是什么?如果是这样,我做错了什么?


我知道将PHP放入HTML中并不困难。我很好奇是否可以以类似于以下的方式使用三元运算符:

<?PHP if(1 == 1){?>
<p>Test</p>
<?PHP }?>

3 个答案:

答案 0 :(得分:5)

您所做的只会返回值&#34; class =&#39; current&#39;&#34;。您仍然需要ECHO / PRINT才能应用它。

下面的代码应该可以正常运行。

<li class="<?PHP echo ($this->pageName == 'index')? 'current': ''; ?>">
    <a href="#">Home</a>
</li>

我刚刚在这里完成的是将class属性放在php之外,以便在这种情况下保持整洁和ECHOed三元所返回的值&#34; current&#34;,如果值评估为真。

出于测试目的,您可以尝试下面的代码行来切换要比较的值。

<li class="<?PHP echo ( 1 == 0 )? 'current': ''; ?>">
    <a href="#">Home</a>
</li>

答案 1 :(得分:0)

<li <?PHP ($this->pageName == 'index') ? ?> class="current" <?PHP : '' ?>><a href="">Home</a></li>

我怀疑,你想要做什么甚至会起作用,因为三元运算符的逻辑是

if condition ? Yes/true : No/false ;

什么取代了代码段中的Yes/true

答案 2 :(得分:0)

另外,你可以使用PHP的简写,我不完全确定你要做什么,但有一个想法,看看这段代码,看看你能搞清楚:

<li <?=($this->pageName == 'index') ? "class='current'" : ''?>><a href="">Home</a></li>

括号()中的所有内容都是if条件\比较。该