Intereting Posts
Как преобразовать текст с помощью HTML-адресов и недопустимых символов в эквивалент UTF-8? Любое обходное решение для использования PHP SoapClient с локальным файлом WSDL (NON-URI)? PHP: $ _FILES бесполезен Метод токена в формах, двойная отправка вопроса Доступ запрещен для пользователя 'speedycm_root' @ 'localhost' для базы данных 'speedycms' конвертировать php-ассоциативный массив в объект javascript Развертывание с использованием ssh с ключом без предоставления парольной фразы для закрытого ключа (ssh-agent) Неустранимая ошибка: класс «Zend \ Form \ Element» не найден Сессия неожиданно потеряна? Замена ereg / eregi для PHP 5.3 удаление пароля из закрытого ключа rsa Установка nodeValue DOMelement: ошибка: попытка получить свойство не объекта Как установить динамический маршрут для использования slug в CodeIgniter? Проблема с сообщениями SMTP, отправленными через PhpMailer: Helo Not Accepted Защищенный декодированный

соответствующий вложенный тернарный оператор в php?

Я хочу преобразовать следующее, 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'];