Операторы "если" "и" с использованием тернарных операторов

Следующее строит ссылку:

if ($cta) {
    $cta = vc_build_link($cta);
    $cta_href = strip_tags(trim($cta['url']));
    $cta_text = strip_tags(trim($cta['title']));
}

В настоящее время, если $cta_href или $cta_text являются пустыми полями в бэкенде, будет выброшено неопределенное variable errors.

Я пытаюсь адаптировать свой код с использованием тернарных операторов, чтобы сделать его более читабельным.

Чтобы устранить ошибки undefined variable, я хочу сделать:

если $add_cta равно yes (пользователь хочет добавить кнопку в этот раздел), то проверьте, не пусты ли $cta_href и $cta_text. Если они не empty, то покажите разметку тега привязки.

В настоящее время у меня есть:

echo ($add_cta == "yes" ? '<a class = "button " href = "'.$cta_href.'">'.$cta_text.'</a>' : "");

Но я не могу найти ничего об использовании and в тернарном выражении?

Как мне это сделать? и является ли мой текущий псевдокод лучшим способом приблизиться к этому?

так же, как оператор AND (&&)

treyBake 10.07.2019 11:25

То, что вы хотите сделать, не сделает ваш код более читабельным. Что-то вроде инициализации переменных, которые вы используете, будет.

jeroen 10.07.2019 11:28
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
51
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как насчет того, чтобы просто иметь ваше условие, как в операторе IF?

echo ($add_cta == "yes" && !empty($cta_href) && !empty($cta_text) ? '<a class = "button " href = "'.$cta_href.'">'.$cta_text.'</a>' : "");

Тернарный оператор просто

/* condition */ ? /* true value */ : /* false value */ ;

Таким образом, вы можете написать условие, как в операторе IF, WHILE и т. д..

Но тернарный оператор не обязательно означает, что ваш код будет лучше.

Что-то более простое будет легче читать инстинктивно.

if ($add_cta == "yes" && !empty($cta_href) && !empty($cta_text) ){
    echo '<a class = "button " href = "'.$cta_href.'">'.$cta_text.'</a>';
}

хм, вы правы, попытка сократить количество строк кода не делает его более читабельным. Спасибо за совет + пометка этого правильного, потому что тернарный оператор тоже работает

Freddy 10.07.2019 12:00

Другие вопросы по теме