Альтернативные структуры управления PHP, есть ли недостатки? - PullRequest
3 голосов
/ 30 июля 2010

Я работал с PHP кодом, который генерирует HTML без каких-либо шаблонов, и он довольно спагетти и его трудно читать из-за того, как они его структурировали. Один из способов радикально улучшить следование потоку, который я заметил, - это использовать : endif вместо { } блоков в некоторых случаях для повышения читабельности. (См. http://php.net/manual/en/control-structures.alternative-syntax.php)

  • Это портативный?
  • Это стандарт?
  • Является ли это медленнее каким-либо существенным образом (я понимаю, что требуется больше символов)

ура!

Ответы [ 5 ]

7 голосов
/ 30 июля 2010

Это портативный?

Да

Это стандарт?

Да

Является ли это медленнее каким-либо существенным образом (я понимаю, что требуется больше символов)

Я не знаю.

Но imho это значительно повышает читабельность и удобство обслуживания, если вы используетеэто в сочетании с HTML.

Пример:

<?php foreach($array as $value): ?>
    <div>
    <?php if($value == "foo"): ?>
        <p><?php echo $value; ?></p>
    <?php endif; ?>
    </div>
<?php endforeach; ?>

против

<?php foreach($array as $value) { ?>
    <div>
    <?php if($value == "foo") { ?>
        <p><?php echo $value; ?></p>
    <?php } ?>
    </div>
<?php } ?>

Это лишь небольшой пример, но я думаю, что endif и endforeachнамного легче определить как <?php } ?>.Так что да, обязательно используйте его с HTML!

Я не использую его где-либо еще, потому что в «нормальном» коде мне труднее его читать.

4 голосов
/ 30 июля 2010

Лично я ненавижу их, но они часть языка.Они не устарели, и я сомневаюсь, что они будут удалены в ближайшее время.

Вы должны быть осторожны с тем, что вы не можете смешивать два синтаксиса в одном блоке управления (как в руководствестраница говорит).

Я не нахожу их более читабельными.Идентификация дает достаточно подсказки.Если у вас есть достаточно длинные блоки, и вы видите, что сами используете эти управляющие структуры или } //end of while, вам следует реорганизовать свой код.

1 голос
/ 31 мая 2013

Альтернативные структуры управления PHP, есть ли недостатки?

Да, вы не можете использовать % в vim для возврата между началом и концом блока. Просто скажи.

0 голосов
/ 02 июля 2013

Единственный недостаток, который я вижу, это то, что в редакторе, таком как возвышенный текст, есть такие опции, как «Перейти к соответствующей скобке» и «Расширить выделение до скобок», которые не будут работать с альтернативным синтаксисом

0 голосов
/ 30 июля 2010

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

Лично, изучая и используя языки стиля c всю свою карьеру программиста (до сих пор), я предпочитаю фигурные скобки с простымикомментарий после конца} фигурной скобки, который говорит вам, что это заканчивается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...