- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева

В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет!
Возникла такая ситуация, ну и так как я не особо программист, короче у меня есть некое меню и там приходится чуть ли не на каждой строчки if делать и более того в if ещё одно if, в общем там сто if получается, но все работает и делает так как мне нужно и все ОК, но куча if немного смущает.
Вообще в целом для интерпретатора PHP эти if вложенные в if это большая проблема или это фигня для него и разбирается он с этим со скоростью света и меньше одной миллисекунды, не стоит на это вообще обращать внимание и делать столько if сколько хочешь хоть миллион или это не совсем так?
Заранее всем спасибо за ответы!Ничего страшного, больше на внешний вид влияет.
Некоторые условия можно заменить на тернарные операторы, "if elseif elseif else" можно заменить на switch.
И таких строк 20, и может будет еще больше:
<?php if ( !is_post_type_archive('cptName') ) { if ( has_term( 'idCategory', 'termName' ) ) { echo ' class="className"'; } } ?>
У меня всего используется две WordPress’овские функции, как вы думаете тяжело ли это для PHP интерпретатора вычислять их по сто раз:
is_post_type_archive() — проверяет, является ли текущая страница архивом произвольного типа постов.
has_term() - Проверяет наличие у поста кастомных терминов, т.е. проверяет есть ли у поста метки/категорий/разделы (с учетом таксономии).
И еще хотел спросить, кажется из двух if я бы мог сделать одно if с логическим оператором AND, но не знаю будет ли это одно и тоже, трогать не охота т.к. пока и так работает.
Это все ради того, чтобы как-то в меню выделить элементы, когда ты в них находишься, а сделать это по-другому я не могу т.к. работа идет с кастомными типами постов и кастомными категориями, не стандартными.кажется из двух if я бы мог сделать одно if с логическим оператором AND, но не знаю будет ли это одно и тоже
Никогда это не будет одним и тем же, только если родительское условие не исполняется всегда, а если оно исполняется всегда, то оно не нужно.
Если результат родительского условия дает false, то вложенный if не выполнится и это плюс к производительности.
Если верить бенчмаркам, на выполнение условий if требуется от 40 до 65 микросекунд. На 100000 легких if'ов будет затрачено около 5 секунд. Больше влияет то, что в условии: насколько оптимизированная функция выполняется.
как вы думаете тяжело ли это для PHP интерпретатора вычислять их по сто раз
Замерьте время выполнения и потом решите нормально он времени на это тратит или нет.
И таких строк 20, и может будет еще больше:
У меня всего используется две WordPress’овские функции, как вы думаете тяжело ли это для PHP интерпретатора вычислять их по сто раз:
is_post_type_archive() — проверяет, является ли текущая страница архивом произвольного типа постов.
has_term() - Проверяет наличие у поста кастомных терминов, т.е. проверяет есть ли у поста метки/категорий/разделы (с учетом таксономии).
И еще хотел спросить, кажется из двух if я бы мог сделать одно if с логическим оператором AND, но не знаю будет ли это одно и тоже, трогать не охота т.к. пока и так работает.
Это все ради того, чтобы как-то в меню выделить элементы, когда ты в них находишься, а сделать это по-другому я не могу т.к. работа идет с кастомными типами постов и кастомными категориями, не стандартными.Нечитаемо. Сделай через функции. В меню часто используется рекурсия для обхода дерева.
А вообще - работает - не трожь. Поставь плагин для кэширования и забей. Когда изучишь php - тогда занимайся переписываем, а пока и так сойдет :)
Никогда это не будет одним и тем же, только если родительское условие не исполняется всегда, а если оно исполняется всегда, то оно не нужно.
Если результат родительского условия дает false, то вложенный if не выполнится и это плюс к производительности.
Если верить бенчмаркам, на выполнение условий if требуется от 40 до 65 микросекунд. На 100000 легких if'ов будет затрачено около 5 секунд. Больше влияет то, что в условии: насколько оптимизированная функция выполняется.
Замерьте время выполнения и потом решите нормально он времени на это тратит или нет.
Вордпрес кривейшая CMS. Там про оптимизацию вообще не слышали. Как то залез под капот - ужаснулся, переписывал на SQL все сам. Но то надо было так... В большинстве случаев - кэш и еще раз кэш ))) Либо нафиг использовать ВП
Вордпрес кривейшая CMS
все относительно... учитывая ее универсальность и поддержку старых версий это величайшая кривейшая цмс))
Замерьте время выполнения и потом решите нормально он времени на это тратит или нет.
Не знаю насколько я правильно делаю замеры, но они получались смешные, с помощью функции timer_stop( 0 ).
В общем для пока что около 42 if’ов, показывает типа в среднем 0,001 сек., а то и просто 0 сек. ( И мне кажется если это правда то это вообще фигня, и я могу надобавлять ещё дофига if’ов, но это не точно )А вообще - работает - не трожь. Поставь плагин для кэширования и забей. Когда изучишь php - тогда занимайся переписываем, а пока и так сойдет :)
<?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"' : ''; ?>
можно заменить на
можно заменить на тернарный