Это не вопрос принципов или общих процедур кодирования, это вопрос о том, как PHP обрабатывает код, или, точнее, не обрабатывать код, который он должен игнорировать, во имя лучшего понимания того, как работает PHP
Сценарий 1:
if (1==2) { echo rand(0,99); }
Очевидно, что приведенный выше код не будет иметь никакого выхода, и вопрос не в этом; а точнее, о том, действительно ли PHP даже считает сделать любой вывод. Когда PHP проходит по странице, он полностью пропускает код, назначенный неудачной проверке if, или ему выделяются какие-либо ресурсы, помимо того, что делает размер файла?
Сценарий 2:
if (1==2) { for ($x = 0; $x <= 999999; $x++) { echo rand(0,99); } }
Подобно сценарию 1, но с ключевым отличием для прояснения сути вопроса, учитывая, что 1 == 2 всегда будет ложным, использует ли этот код больше ресурсов, чем предыдущий, или они оба будут одинаково «дешевы» для обработки? Или есть какие-то «скрытые» действия, которые складываются, даже если код в цикле такой же минимальный, как этот?
Сценарий 3:
for ($x = 0; $x <= 999999; $x++) { if (1==2) { echo rand(0,99); } }
Теперь этот человек должен увидеть ложное утверждение миллион раз, но насколько это действительно важно с точки зрения ресурсов? Будет ли проверяться, если 1 равно 2, или PHP «учится» с первой проверки? И тратит ли он какие-либо ресурсы сверх этого, или простая проверка if, такая как внутри цикла, единственная вещь, которую PHP будет обрабатывать? Будет ли это «читать» echo rand(0,99);
миллион раз, хотя 1 не 2?
Сценарий 4:
for ($x = 0; $x <= 999999; $x++) { if (1==2) { for ($x = 0; $x <= 999999; $x++) { echo rand(0,99); } } }
Наконец, комбинация их всех, будет ли этот пример массовым потерей ресурсов на уровне цикла в цикле, или внутренний цикл будет полностью игнорироваться при обработке? Другими словами, 1! = 2 заставит PHP полностью пропустить обрабатывает внутренний цикл, или он будет тратить память на код, который он должен игнорировать? И насколько этот сценарий отличается от предыдущих трех с точки зрения обработки и ресурсов?
Заранее благодарен за любые знания PHP и использования памяти по этому вопросу, я надеюсь, что ответ на этот вопрос поможет лучше понять, как PHP обрабатывает код для меня и других
РЕДАКТИРОВАТЬ:
Другим несколько уместным примером может быть наличие большого количества комментариев в цикле по сравнению с ним; будут комментарии внутри цикла влиять на производительность по-разному в любом случае (независимо от того, насколько «незаметным» вы можете считать это) чем такое же количество комментариев вне цикла?
1 & 2) Все внутри этих, если блоки не оцениваются
3) PHP ничего не изучает, он выполнит 1 миллион проверок. Это не важно, но и не незначительно. Как предложил один из комментаторов, попробуйте и посмотрите, сколько времени попало на страницу.
4) Это генерирует тот же объем обработки, что и № 3
Других решений пока нет …