用html字符串实现php表达式

用html字符串实现php表达式,php,html,Php,Html,我是PHP的初学者,我有这样的代码 <?php foreach ($statuses as $status) { ?> <div class="dropdown-item"> <span data-status="<?php echo $status['id'] ?>" class="dropdown-item__sub <?php echo ($last_ticket['st

我是PHP的初学者,我有这样的代码

<?php foreach ($statuses as $status) { ?>
    <div class="dropdown-item">
       <span data-status="<?php echo $status['id'] ?>" class="dropdown-item__sub <?php echo ($last_ticket['status'] ?? '') == $status['status'] ? ' active' : '' ?>"><?php echo $status['status'] ?></span>
    </div>
  <?php } ?>
可以用变量写这个表达式吗?像这样

 $html .= '<span data-status=' . $status['id'] . ' class=' . 'dropdown-item__sub ' . ($last_ticket['status'] ?? '') == $status['status'] ? ' active' : ''  . '/>' . $status['status']. '</span>';

我尝试了不同的方法,但效果不好。

不要忘记每个属性上的“双引号”

$html .= '<span data-status="' . $status['id'] . '" class="' . 'dropdown-item__sub ' . ($last_ticket['status'] ?? '') == $status['status'] ? ' active' : ''  . '/>"' . $status['status']. '</span>';

我想这就是你想要的:

$html .= '<span data-status="' . $status['id'] . '" class="' . 'dropdown-item__sub ' . (($last_ticket['status'] ?? '') == $status['status'] ? ' active' : '')  . '"/>' . $status['status']. '</span>';
你需要

a确保HTML属性周围有双引号,以及

b在三元运算符周围放上括号,以确保运算符的优先级符合您的需要


演示:

好的,那么它有什么问题?准确地解释你想要什么,以及到底发生了什么。不起作用也不能告诉我们关于你问题的任何有用信息。这是否回答了你的问题?问题的答案是可能的,是的,你可以,但你必须做对。你还省略了HTML属性的所有双引号。ADyson,在最终结果中,我的数据状态为空,未添加类“活动”。Renz Tulagan,请用我的代码显示示例?浏览器中的结果如下。。很遗憾,不正确/OpenI在浏览器中没有看到div内部的span。@没有问题。如果答案对您有帮助,请记住将其标记为已接受,单击答案旁边的勾号,使其变为绿色-有关更多信息,请参阅。谢谢:-