内联if中的意外标记T_ECHO

Lom*_*mbo 3 php

在我的一个观点中,我有类似的东西

<li <?php $isCurrent ? echo 'class="current"' : ''?> >
    <a href="SOME_LINK" class="SOME_CLASS">SOME_TEXT</a>
</li>
Run Code Online (Sandbox Code Playgroud)

这会导致语法错误,意外的T_ECHO.改变echoprint解决问题,但我想了解为什么我不能使用echo.

Pek*_*ica 9

你不能这样使用这种结构.该三元运算符不是"如果"块,但返回基于所述条件是否满足不是一个值.

您想要更改结构:

<?php echo  ($isCurrent ? 'class="current"' : '') ?>
Run Code Online (Sandbox Code Playgroud)

它可以使用,print()因为这是一个具有返回值的函数.然而,这不是你想要的,因为第一个echo将打印出的结果print毫无意义.

它不起作用,echo因为echo不是一个函数,而是一个语言结构.