За последние 24 часа нас посетили 53709 программистов и 1771 робот. Сейчас ищет 761 программист ...

Что означает символ ":" после "if ()"?

Тема в разделе "PHP для новичков", создана пользователем riaron, 2 авг 2015.

  1. riaron

    riaron Активный пользователь

    С нами с:
    1 окт 2014
    Сообщения:
    247
    Симпатии:
    4
    это то же что и фигурные скобки?
    Код (PHP):
    1.     <?php if ($page['header']): ?>
    2.         <div class="header">
    3.             <?php print render($page['header']); ?>
    4.         </div>
    5.     <?php endif; ?>
    PHP, JavaScript, SQL и другой код пишите внутри тегов
    Код ( (Unknown Language)):
    1. [b]php][/b]Тут код[b][/[/b][b]code][/b][/color]
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Re: Что означает символ : в php?

    значить фигурные скобки
    Код (Text):
    1.  { }
    :)
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Это "альтернативный синтаксис" операторов PHP

    http://php.net/manual/ru/control-structures.alternative-syntax

    используется, как правило, только там, где идет мешанина из html и php. то есть в "представлении".

    Добавлено спустя 8 минут 36 секунд:
    Заголовок темы "Что означает символ : в php?" крайне *уевый. Исправляю его на соответствующий самому вопросу.

    Что касается символа ":", то используется во множестве разных контекстов: в обращении к статическим свойствам/методам, в метках, в тернарном операторе. А твой случай это т.н. "альтернативный синтаксис".
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Я бы сказал, что это альтернативно одаренный синтаксис. Потому что даже в представлении он, имхо, не нужен, является пережитком темных веков PHP, оставлен для хоть какой-то совместимости и все усложняет. Смешивать bash-style с C-style - грешно. Привет, разработчики Битрикса, к вам в первую очередь относится, да!
     
  5. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Ну кому как, у меня в представлениях он постоянно. Удобнее же, чем скобочки. В других частях иногда использую для if (0), когда надо часть кода исключить временно в отладочных целях.
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Код (Text):
    1. /*
    2. Тут код
    3. */
    Проверено. Работает.
     
  7. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    if (0) удобнее, потому что его всегда можно поправить на if (1)аи это быстрее, чем убирать комментарий, да ещё и else приписать и переключать два варианта алгоритма. Это в одной книжке по C я как-то прочитал, только там использовался препроцессор, естественно.
     
  8. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    if(0) - обрабатывается и код подсвечивается - это архи неудобно.
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    в эклипсе/нетбинсе ctrl+shift+c включают/выключают строки кода через комментирование
    но да, сам люблю if(0). не вижу ничего плохого если программист видит свой алгоритм и допускает отключение блока кода через модификацию одного символа. кому неудобно - пусть не пользуется. демократия же.
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Дык никто никого не заставляет :) Зато взвесили все "за" и "против", чтобы каждый мог сформировать точку зрения.
    От меня за /**/ - это, как ни крути именно комментарий. Кроме того, что он код выпиливает из подсветки, оно может быть вставлено внутри выражений, к примеру. Это редко когда может понадобиться, но всяко бывает.

    Когда по чужому коду бежишь глазами, комментарии видно сразу, а вот if(0) бегло можно не заметить, а когда заметишь - нужно искать, где он закрывается. И, кроме прочего, закомментированный код выпадает из фазы интерпретации.

    if(0) же выпадет только, если используются какие-нибудь оптимизаторы перед оп-кэшем, которым простительно жевать страницу на холодный кэш в 5 раз дольше, чем "чистая отработка", с тем, чтобы потом остальные запросы выполнялись в 10 раз быстрее.

    У меня, например, в коде, постепенно скапливается много закомменченного кода, который чистится периодически только. После любого рефакторинга остается груда мусора, в котором, однако, могут быть полезные вещи. Если бы это все было обернуто в if-ы, код был бы избыточен. Да, это спички, но даже при банальной калькуляции строк в файлах, значения будут не правильные, потому что комментарии калькулятор игнорирует, а вот заглушки - нет.
     
  11. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    еще раз говорю - свой код знать надо. для команды другие договоренности должны быть. я бы даже сказал что в таком случае как раз ctrl+shift+c с его построчным комментированием кода куда нагляднее чем /**/ и if(0) - ты в дельте версирования видишь весь блок строк. а если мы говорим о том что конкретно взятый разработчик на какое-то время хочет выключить блок кода - пусть делает как удобно. в разных случаях будет разный подход.
     
  12. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Нашли о чём спорить)))