2012-10-03 78 views
1

只需要解決這個問題的語法問題,有可能嗎?PHP第三方聲明回聲...?語法問題

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

我不知道我應該在哪裏連接以及如何回顯if語句結果。

+0

你應該更清楚地說明你的'condition','true-expression'和可能的'false-expression'應該是什麼。 – poplitea

+0

採取了點,它確實看起來相當混亂.. – Dan

回答

3

運算符優先級可能很難看,特別是在PHP中,運算符的規則與大多數其他語言不匹配(它在PHP中是左關聯的,在其他任何地方都是右關聯的,儘管這不太可能是你的問題,因爲你只在這裏使用運營商)。

有疑問時,使用括號,使你的意圖明顯:

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

另外,我認爲他們的意思是省略「目標=」。但一個很好的答案+1。 –

+0

這是可能的。儘管如此,我不打算這麼做。 – cdhowie

+0

我剛剛重讀了這個問題,從頭開始評論我的第一部分。 Woops。 –

1

你需要使用大括號,因爲PHP將不承認燕鷗的結束。運。

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