Мне было интересно, есть ли разница в производительности между следующим синтаксисом if-statement (аналогично для других циклов – while, for, foreach и т. Д.):
if(..) {...} else {...}
А ТАКЖЕ
if(..) : ... else : ... endif;
Любые преимущества использования одного над другим?
Обычно вы используете альтернативный синтаксис ( if (condition):
endif;
) в представлениях (шаблонах), поскольку его легче читать среди HTML. Например:
<?php foreach ($items as $item): ?> <article class="item"> <h1><?php echo $item->title; ?></h1> </article> <?php endforeach; ?>
Легче читать, чем:
<?php foreach ($items as $item) { ?> <article class="item"> <h1><?php echo $item->title; ?></h1> </article> <?php } ?>
Тем более, что вы добавляете больше структур управления, например, if
, for
и т. Д. Если вы используете фигурные скобки в HTML, становится труднее отличить, к какой закрывающей фигурной скобке принадлежит к открывающей фигурной скобке, тогда как с использованием альтернативного синтаксиса, который вы знаете с помощью endif
ищет сообщение об открытии if:
Надеюсь, это поможет.
Никто.
Стили синтаксиса предназначены только для чтения кода. Различные организации могут предпочесть различные стили, но не влияет на производительность.
Лично я использую синтаксис if if():
если я смешиваю PHP и HTML:
<div class="stuff"> <?php if($a === $b): ?> <span>Hello</span> <?php else: ?> <input type="checkbox" /> <?php endif; ?> </div>
Я думаю, что это выглядит лучше, чем при использовании if(){
, но в «нормальном» php-коде (не смешанном с HTML) я использую синтаксис if(){
.
<?php if($a === $b){ runThisCode(); } else{ otherCode(); } ?>
Нет синтаксиса только для разницы в производительности. Я лично использую первую для основной логики и использую второй пример в представлениях или когда php взаимодействует с html или выплескивает html. поскольку я считаю, что управлять конечным результатом проще, не добавляя \n
\t
.
Таким образом, никаких преимуществ, кроме читаемости.