Множественные if – ветвление в php и if в if, когда кажется, что что-то много if?

123
I7
На сайте с 12.06.2008
Offline
370
#11
Dmitriy_2014 #:

У меня всего используется две WordPress’овские функции, как вы думаете тяжело ли это для PHP интерпретатора вычислять их по сто раз.

Если в каждом условии вычисляется одна и та же функция с одними и теми же аргументами, то конечно это нужно выносить в переменную и не вычислять по 100 раз.

Смотрите сколько у вас этих полностью одинаковых is_post_type_archive('cptName') и т.п. и выносите повторения в переменные.

Дмитрий
На сайте с 07.12.2007
Offline
134
#12
Если проверка на одно условие, то можно в массив кинуть и по массиву искать. А также оформить в ту же функцию. Функция для определения класса.
fliger
На сайте с 17.09.2015
Offline
114
#13
Массив + цикл.
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#14
Ilya74 #:

Если в каждом условии вычисляется одна и та же функция с одними и теми же аргументами, то конечно это нужно выносить в переменную и не вычислять по 100 раз.

Смотрите сколько у вас этих полностью одинаковых is_post_type_archive('cptName') и т.п. и выносите повторения в переменные.

С is_post_type_archive('cptName') так, наверное, можно сделать т.к. там всегда один и тот же аргумент, а вот со второй has_term( 'idCategory', 'termName' ) там id категорий всегда разный.
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#15
fliger #:
Массив + цикл.
Массив для меня, наверное, это не вариант, мне будет не удобно, так вроде понятно и удобно.
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#16
Ладно всем спасибо за подсказки, в общем так как по моим подсчетам это занимает толи 1 миллисекунду, толи 0, то оставлю это все так как есть в виде прототипа на время ( Нет ничего более постоянного, чем временное :) ) .
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#17

Вот еще что интересно было бы узнать, как видит интерпретатор PHP вот эти три разных варианта if, в его видении, в опкодах это для него абсолютно одно и тоже, просто запись для меня разная, извиняюсь за тупой вопрос, но просто если интерпретатор переделывает это все в одно и тоже под себя, то и мне переделывать эти if’ы из двух в один смысла нет:

<?php if ( !is_post_type_archive('cptName') ) { if ( has_term( 'idCategory', 'termName' ) ) { echo ' class="className"'; } } ?>

или

<?php if ( ( !is_post_type_archive('cptName') ) && ( has_term( 'idCategory', 'termName' ) ) ) { echo ' class="className"'; }  ?>

или

<?php echo ( ( !is_post_type_archive('cptName') ) && ( has_term( 'idCategory', 'termName' ) ) )  ?  ' class="className"'  :  ''; ?>
LEOnidUKG
На сайте с 25.11.2006
Offline
1762
#18
интерпретатор PHP вот эти три разных варианта if

Одинаково всё.

Это называется стиль написания и не более того.

Если вы пишите для себя родимого, то как хотите. Если пишите для других людей, то пишите более развернуто и понятно. И иногда пишут первый вариант т.к. знаю, что может быть понадобиться ELSE в будущем. Но это уже опыт разработки нужен, чтобы прогнозировать некоторые моменты.

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
SeVlad
На сайте с 03.11.2008
Offline
1609
#19
Dmitriy_2014 #:

if ( !is_post_type_archive('cptName')
Жуть какая-то.
is_post_type_archive() – Проверяет находится ли пользователь на архивной странице записей произвольного типа.
is_post_type_archive() – Проверяет находится ли пользователь на архивной странице записей произвольного типа.
  • wp-kama.ru
Проверяет находится ли пользователь на архивной странице записей произвольного типа. Страницей архива произвольного типа считается страница, на которой выводятся записи нового типа ( /?post_type=custom ). Если, например, новый тип записей называется 'book', то такая страница будет иметь URL: (может отличаться, зависит от настроек ЧПУ). Функция...
Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#20
LEOnidUKG #:

Одинаково всё.

Это называется стиль написания и не более того.

Если вы пишите для себя родимого, то как хотите. Если пишите для других людей, то пишите более развернуто и понятно. И иногда пишут первый вариант т.к. знаю, что может быть понадобиться ELSE в будущем. Но это уже опыт разработки нужен, чтобы прогнозировать некоторые моменты.

Для себя, это хобби, как выглядит код мне абсолютно все равно, лишь бы работало, но есть одно но все таки, мне важно как бы это сказать чтобы он более или менее правильно и быстро работал на сколько это возможно для моего понимания, но не сложно :), короче такая странная штука. Но в большей степени не важно, лишь бы работало, но не до зависания сервера или белого экрана с фатал еррор и т.п. :).
123

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий