php - 内联中的意外标记 T_ECHO if

标签 php

我的观点之一是这样的

<li <?php $isCurrent ? echo 'class="current"' : ''?> >
    <a href="SOME_LINK" class="SOME_CLASS">SOME_TEXT</a>
</li>

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

最佳答案

你不能那样使用这个结构。 ternary operator不是“if” block ,而是根据条件是否满足返回一个值。

你想改变结构:

<?php echo  ($isCurrent ? 'class="current"' : '') ?>

它与 print() 一起使用,因为这是一个具有返回值的函数。然而,这不是您想要的,因为第一个 echo 将打印出 print 的结果,这是没有意义的。

它不适用于 echo,因为 echo 不是一个函数,而是一种语言结构。

关于php - 内联中的意外标记 T_ECHO if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2516669/

相关文章:

php - 是否有任何 native PHP 函数会抛出内置异常?

php - Yii dataProvider 数组给出的数据顺序

php - 连接到多个数据库

javascript - 使用 CKEditor 以 HTML 格式发送电子邮件

javascript - 如何使用PHP预览视频上传前后?

php - 是否可以使用 PHP 的 PDO Postgres 驱动程序查询 AWS Redshift?

php - 授权的GAE应用程序必须与数据库实例在同一区域 |谷歌应用引擎

javascript - cookie不是js创建的

php - 功能测试多语言 Symfony2 应用程序

PHPUnit 测试套件命名约定