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の終わりを認識しないため、中括弧を使用する必要があります。op。

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