операторы if и if с использованием троичных операторов - PullRequest
0 голосов
/ 10 июля 2019

Ссылка строится следующим образом:

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 в троичном выражении?

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

1 Ответ

1 голос
/ 10 июля 2019

Как насчет того, чтобы ваше состояние было таким же, как в заявлении 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>';
}
...