2013-02-06 22 views
0

我想將以下if else condition轉換爲nested ternary運算符。在php中對應的嵌套三元運算符?

if ($projectURL) { 
    echo $projectURL; 
} elseif ($project['project_url']) { 
    echo $project['project_url']; 
} else { 
    echo $project['project_id']; 
} 

我寫下如下。

echo ($projectURL)?$projectURL:($project['project_url'])?$project['project_url']: $project['project_id']; 

但它被發現工作不正常。這是不是一個正確的方式?

+4

不要那樣做。三元運算符很容易變成不可讀的混亂。嵌套的更是如此。用if/else卡住這個。它使代碼更容易維護。 – Quentin

+0

如果您不介意,請重新標記該問題。 –

+0

我在文本框內使用了嵌套三元運算符。難以維護「if else nested loop」。 – shihabudheen

回答

1

三元操作符在PHP中是棘手的,因爲它們是左關聯的(與所有其他語言不同,它是右關聯的)。您將需要使用括號告訴PHP你想究竟是什麼在這種情況下:

echo ($projectURL ? $projectURL : ($project['project_url'] ? $project['project_url'] : $project['project_id']));