1

只是对此语法有问题,有可能吗?

echo '<li><a href="' .$item->url. '" ' .($item->target != '') ? "target=$item->target" : "". '>' .$item->post_title. '</a></li>';

我不确定应该在哪里连接以及如何回显 if 语句结果。

4

2 回答 2

3

运算符优先级可能很难看,尤其是在 PHP 中,?:运算符的规则与大多数其他语言不匹配(它在 PHP 中是左关联的,而在其他任何地方都是右关联的,尽管这不太可能是您的问题,因为您只在此处使用运算符一次)。

如有疑问,请使用括号明确您的意图:

echo '<li><a href="' .$item->url. '" ' . (
    ($item->target != '')
    ? "target=$item->target"
    : ""
). '>' .$item->post_title. '</a></li>';
于 2012-10-03T15:01:18.023 回答
1

您需要使用大括号,因为 php 无法识别 tern 的结尾。同上。

echo '<li><a href="' .$item->url. '" ' . (
  ($item->target != '')
  ? "target=$item->target"
  : ("". '>' .$item->post_title. '</a></li>')
);
于 2012-10-03T15:01:51.343 回答