Я хочу преобразовать следующее, 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'];
Но он найден как не работает должным образом. Это не правильный путь?
Тернарные операторы сложны в PHP, поскольку они лево-ассоциативные (в отличие от всех других языков, где они являются право-ассоциативными). Вам нужно будет использовать скобки, чтобы сказать PHP, что вы хотите именно в этом случае:
echo ($projectURL ? $projectURL : ($project['project_url'] ? $project['project_url'] : $project['project_id']));
Начиная с php 7
мы можем использовать оператор Null-коалесценции
echo $projectURL ?? $project['project_url'] ?? $project['project_id'];