2010-02-15 2 views
7

Я шел через некоторые из кода для Dolphin CMS недавно (а craptastic пример для PHP ненавистников), когда я наткнулся на эту маленькую жемчужину в /grp.php:Что делает обертывание процедурного блока в фигурных скобках в php?

{ 
    switch ($_REQUEST['action']) { 
     //a crapton of switch statements 
    } 
} 

Мне любопытно, что оберточная фигурная скобки, "{}" без каких-либо ключевых слов. Я делаю PHP-разработку в первую очередь так, может быть, (надеюсь, ?? !!?), Это то, о чем я просто не знаю, но я попытался удалить фигурные скобки, и код работает как обычно.

У меня возникло трудное понимание смысла этой цели.

Любые идеи?

(Примечание: Это действительно только для моего собственного назидания я почти возникают проблемы со сном, потому что это не делает никакого смысла для меня ....)

+1

Некоторые редакторы позволяют сворачивать/сворачивать код - так что, я думаю, разработчик мог бы поставить кусок кода внутри блока, а затем свернуть блок, чтобы упростить навигацию по большому кодовому файлу. – leepowers

ответ

11

Я видел это в больших блоках процедурный код. Кажется, что помогает группа логических блоков вместе, которые обычно могут быть отнесены к отдельной функции. Это, в некоторой степени, помогает при редактировании, и ваша среда IDE может быстро идентифицировать блок фигурными скобками.

Функционально, я не думаю, что он что-то делает. Визуально это помогает групповому коду.

+1

Значит, «программист» (с котировками в настоящее время сомневаюсь) эффективно удалил код, чтобы облегчить ему? Вид ленивой и немного хулительной практики, если вы спросите меня. Принято :) –

+8

Просто потому, что это отстранение от работы других людей меня немного раздражает: как примечание к вежливости другим разработчикам, я всегда предполагаю, что код WTF был помещен там по уважительной причине. Я говорю это, потому что иногда знаю, что делаю то, что на первый взгляд кажется несколько касательным для решения проблемы. Однако всякий раз, когда я вынужден это делать, я оставляю подробный комментарий, объясняющий, почему я сделал то, что сделал. Я думаю, что лучше всего предположить, что парень знал, что он делает, пока и пока вы не соберете хорошие доказательства обратного. Будьте здоровы, это может быть ваш код в следующий раз. Извините, мой любимый peeve –

+1

Я получаю ваш человек, но это не предназначалось для увольнения с ума; он должен был быть просто старым, бежать на мельнице, пренебрежительно. Это одно из моих любимых мобов, чтобы усложнить ситуацию для IDE. Шутки в сторону. Я вроде бы хотел, чтобы я был snarky, но я действительно не :) Добавление специальной разметки в код для улучшения единого IDE-проекта разработчиков просто ленив. Я согласен, что если вам нужно сделать что-то хромое, просто разместите комментарий. На самом деле, отсутствие комментария не заставляло меня искать решение. –

0

Без особого контекста трудно сказать. Они могут пытаться ограничить объем определенных переменных. Я не знаю специфических правил PHP, но они могут пытаться гарантировать, что переменные, модифицированные внутри этого оператора switch, не влияют на вещи вне блока. Или они могут использовать шаблон RAII.

+0

Фактически, это делает точно [ничего] (https://gist.github.com/AD7six/11769a863f062c75ee5a) – AD7six

Смежные вопросы