Что лучше - {} или (:) endif;

Тема в разделе "Как сделать...", создана пользователем Extalionez, 24 июл 2012.

  1. Extalionez

    Extalionez Клоун

    Заблокирован
    Регистр.:
    21 авг 2008
    Сообщения:
    368
    Симпатии:
    185
    Здравствуйте! В последнее время начал замечать частое использование в чужом коде альтернативного синтаксиса управляющих текстур. Хотелось бы узнать чем он лучше обычного {} ведь не один из известных мне редакторов не умеет выделять блок между ( : ) endif; в отличие от {}
    Конечно это не очень фатально, но когда вложений больше пяти и они разбросаны как я не знаю что - это уже становится нечитаемо
     
  2. Viodele

    Viodele Механик

    Administrator
    Регистр.:
    17 дек 2011
    Сообщения:
    117
    Симпатии:
    495
    Что я тут могу сказать... Программисты - это натура довольно тонкая. И не смотря на тонны литературы на тему "правильного форматирования кода", все еще существуют ряды приверженцев "быдло-кода". Как уже Вы догадались, компилятору глубоко параллельно, какой из вариантов выберет программист. Структура "( : ) - endif" - довольно древняя. А как показывает практика, в последнее время пошла тенденция убирать из новых версий компилятора PHP старые и никому не нужные функции, структуры и прочий раритет. Как не крути, все идет к обобщенному виду кода, основная тенденция которого уже давно была продиктована языком Си. Ничего более универсального пока никто не изобрел. Если интересно почитать литературу о правильном форматировании кода - настоятельно рекомендую начать из стандартов описанных Zend Framework. Красиво, удобно, практично.
     
    latteo и Extalionez нравится это.
  3. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.517
    Симпатии:
    1.368
    Перенес в "как сделать"

    Имхо: конструкция набирает популярность из-за популярных CMS, такой синтаксис в своих темах использующих (намёк на WP, если кто не понял).
     
  4. Extalionez

    Extalionez Клоун

    Заблокирован
    Регистр.:
    21 авг 2008
    Сообщения:
    368
    Симпатии:
    185
    действительно, сорь. как-то я забыл даже что такой раздел существует :)
    Для меня лично главным в этом вопросе было какая разница для компилятора, на что довольно подробно ответил Viodele.
     
  5. KODEAK

    KODEAK

    Регистр.:
    11 апр 2009
    Сообщения:
    160
    Симпатии:
    15
    в коде использую {} а в шаблона if() : endif;
     
  6. Extalionez

    Extalionez Клоун

    Заблокирован
    Регистр.:
    21 авг 2008
    Сообщения:
    368
    Симпатии:
    185
    можете объяснить почему?
     
  7. recasher2k12

    recasher2k12

    Регистр.:
    19 фев 2012
    Сообщения:
    156
    Симпатии:
    78
    Я тоже использую ту же конструкцию в шаблонах, потому что так более читаемо в шаблоне, нагляднее и все дела...
    Например,
    Код:
    <? foreach($categories as $category): ?>
       <div>
       <? if(is_active($category['id'])): ?>
          <b><?=$category['name']?></b>
       <? else: ?>
          <a href="<?=$category['link']?>"><?=$category['name']?></a>
       <? endif; ?>
       </div>
    <? endforeach; ?>
    
     
    Andipas нравится это.
  8. Extalionez

    Extalionez Клоун

    Заблокирован
    Регистр.:
    21 авг 2008
    Сообщения:
    368
    Симпатии:
    185
    и вы это считаете нагляднее и читабельней:eek::confused:
    ...хотя может для блокнота это и чуток нагляднее
     
  9. recasher2k12

    recasher2k12

    Регистр.:
    19 фев 2012
    Сообщения:
    156
    Симпатии:
    78
    Сколько людей - столько и мнений, в простом коде я соблюдаю отступы, поэтому удобнее использовать {}. Шаблоны имеют более кривую структуру, чем приведенный пример. Мне сложно видеть к чему принадлежит закрывающаяся скобка } к if, foreach, for или while. Приходится искать по коду. А я человек, а не интерпретатор, чтобы сидеть считать количество открывающих и закрывающих скобок. Поэтому для меня такая структура гораздо нагляднее.
     
    Andipas нравится это.
  10. Extalionez

    Extalionez Клоун

    Заблокирован
    Регистр.:
    21 авг 2008
    Сообщения:
    368
    Симпатии:
    185
    А я про что? как раз endif и приходится считать если там больше одного вложения. А закрывающаяся скобка } подсвечивается всеми популярными редакторами. А бесплатный notepad++ может даже свернуть эту конструкцию