内联PHP / HTML三进制If

imp*_*335 4 html php ternary-operator

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

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

但这是行不通的。

我要实现的目标有可能吗?如果是这样,我在做什么错?


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

<?PHP if(1 == 1){?>
<p>Test</p>
<?PHP }?>
Run Code Online (Sandbox Code Playgroud)

小智 6

您所做的只会返回值“ class ='current'”。您仍然需要对其进行回显/打印才能应用它。

下面的代码应该可以正常工作。

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

我在这里所做的就是将class属性放置在php之外,以使内容保持整洁,如果该值的值为true,则在这种情况下将“三元”返回的值设为“当前”。

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

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


小智 0

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

我怀疑你想要做的事情是否会起作用,因为三元运算符的逻辑是

if condition ? Yes/true : No/false ;
Run Code Online (Sandbox Code Playgroud)

Yes/true您的代码段中替换了什么?