0

if else condition以下をnested ternary演算子に変換したい。

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

2 に答える 2

2

Ternary operators are tricky thing in PHP, as they are left-associative (unlike all other languages, where it's right-associative). You will need to use parenthesis to tell PHP what you want exactly in this case:

echo ($projectURL ? $projectURL : ($project['project_url'] ? $project['project_url'] : $project['project_id']));
于 2013-02-06T12:14:33.407 に答える