[PHP] Ставить ли скобки в условии if, если в блоке всего 1 действие?

Какое-то время назад друг, увидев мой код, указал на некоторые моменты которые, как ему показалось неверны(или просто так не принято).

if (!empty($fields))
    foreach ($fields as $key => $value) {
        /* Операции с массивом */
    }

Так вот этот кусок, по его мнению правильнее было бы оформить вот так:
if (!empty($fields)) {
    foreach ($fields as $key => $value) {
        /* Операции с массивом */
    }
}

Так как же всё-же *правильнее* ?

И еще 1 вопрос:
/* Так? */
if (!empty($fields)) {

}

/* Или так? */
if (!empty($fields))
{

}

Разницы особой нет, но всё-же интересно Ваше мнение.
  • Вопрос задан
  • 4866 просмотров
Решения вопроса 2
VasiliyIsaichkin
@VasiliyIsaichkin
Web front/back-end (JS-full stack) app developer
Скобки лучше ставить т.к. по запарке потом можно вставить в это условие еще чтото и забыть про скобки, а потом тупить ват из фак.
Про второе считаю что первый вариант лучше т.к. не хавается лишняя строчка с скобкой и код получается более плотный и читабельный. Адепты С++ будут со мной несогласны.
Ответ написан
@Vampiro
Есть такое понятие, как "стандарт кодирования". Первый с гугла: www.skillz.ru/dev/php/article-Standarty_kodirovani...

Разные команды пишут по разным стандартам. Большинство редакторов умеют "отстандартить" код =) Так что дело вкуса.

ЗЫ на собеседованиях про psr-2 могут запросто спросить.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 6
@xAockd
Что бы не затупить не было втф
if пишу так
if($smth) return $smth;
И тогда мне кажется явно видно что if однострочник. Ну, а если надо расширить, то тогда скобки
Ответ написан
Комментировать
mannaro
@mannaro
Умею профессионально гуглить
Если вы пишите так:
if ($var) while($var--) {
    # ......
}

То скобки лучше не ставить.

Но если вы пишите так:
if ($var)
  while($var--) {
    # ....
  }

То лучше ставить:)
Имхо, конечно.
Ответ написан
@gro
Начинающие программисты самовыражаются и самоутверждаются тем, как они раставляют скобки и как выравнивают блоки.

Потом начинают самовыражаться за счёт более интересных вещей, таких, как, например, хорошая архитектура или работающий проект.

Если первая стадия пройдена, нужно просто взять один из стандартов и следовать ему.
В PHP единственный стандарт по этому поводу, о котором следует говорить - PSR-2.

Впрочем, в любом другом вменяемом стандарте всегда ставятся скобки.
Ответ написан
Комментировать
@anitspam
я стал ставить скобки и переносить их на новую строку, когда увидел в промышленном коде, отвечающем за безопасность, примерно такое
с++
...
if (...)
    DEBUG('...')
    a = 1;
...


такие ошибки труднее найти визуально
Ответ написан
Комментировать
@r1ch
if (!empty($fields)) return $fields;
else rerurn false;

for(;;) echo "это бесконечный цикл";

в примерах выше обычно можно не ставить, код более линейный и понятный
Ответ написан
Комментировать
@barbozze
Вообще нужно смотреть по обстоятельствам, когда именно это необходимо
"Ставить ли скобки в условии if, если в блоке всего 1 действие?"
если синтаксис позволяет то на твоё усмотрение, лишь бы это было написано понятно
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы