Nano Hash - криптовалюты, майнинг, программирование

Следует ли в php использовать фигурные скобки даже в коротких условных операторах?

Я знаю, что в PHP фигурные скобки не требуются для условных выражений с одним оператором. Но это вопрос о хорошем стиле кодирования. (Конечно, когда речь идет о стиле, обычно лучше просто использовать тот стиль, который соответствует проекту, но давайте проигнорируем это для этого вопроса.)

Итак: лучше ли заключать любые условные операторы в фигурные скобки, или лучше (например, более чисто) не использовать скобки в простых условиях:

Например. это:

if (!file_exists($templatefile)) {
   throw new Exception('Template file does not exist');
}

или это:

if (!file_exists($templatefile))
    throw new Exception('Template file does not exist');

Существуют ли для этого какие-либо общие и последовательные рекомендации, или это зависит только от личных предпочтений?


  • Придерживайтесь правил good 'ol programming practices Используйте фигурные скобки. Вы не пожалеете об этом позже 07.05.2013
  • Некоторое время назад я преобразовал свои активные проекты, чтобы везде использовать эти скобки (конечно, то же самое с циклами). Я чувствую, что это лучше читается и, конечно же, предотвращает возможные ошибки. 07.05.2013
  • Zend, Pear, cakePHP... вроде общее соглашение здесь: всегда используйте фигурные скобки 07.05.2013

Ответы:


1

Я видел слишком много ошибок людей, которые не использовали фигурные скобки, а потом добавляли дополнительную команду и забывали обернуть ее.

Мое отношение состоит в том, чтобы обернуть его для удобочитаемости и будущего расширения.

07.05.2013
  • Да, это тоже было бы моим размышлением. Отсутствие включения несовместимо с остальной частью кода, поэтому это может привести к случайным проблемам и возможным проблемам с отладкой. 07.05.2013
  • Похоже, что Рекомендация по стандартам PHP также объявляет это в PSR-2 5. Раздел «Структуры управления»: Тело каждой структуры ДОЛЖНО быть заключено в фигурные скобки. Это стандартизирует внешний вид структур и снижает вероятность внесения ошибок при добавлении новых строк в тело. Может быть, эту информацию можно включить в ваш ответ? 07.05.2013

  • 2

    Одно правило хорошего стиля программирования: не отвлекаться. Таким образом, иметь общий способ сделать это - независимо от одной или нескольких строк - это путь:

    if (!file_exists($templatefile)) {
       throw new Exception('Template file does not exist');
    }
    

    Конечно, это это субъективно (но это проблема с вашим вопросом), не все программисты отвлекаются на это. Но на самом деле ваша система контроля версий будет. Если вам нужно изменить однострочный блок if на многострочный, нужно ли трогать условие if? Черт, нет, потому что он не изменился, верно? Но если вы не используете скобки, вам все равно нужно коснуться этой строки. Это то, что я бы назвал отвлечением. Итак, это менее субъективный аргумент.

    Как вы можете себе представить, есть и другие аргументы, с помощью которых вы можете поддерживать этот подход, например, когда вам нужно отладить код и вам нужно переключиться с одного на многострочный для различных изменений и т. д. pp. Так что держите его согласованным во всей вашей кодовой базе, если это блок if, то это блок if.

    Для забавы всегда выбрасывайте блок «если»:

    if (!file_exists($templatefile)); {
       throw new Exception('Template file does not exist');
    }
    
    07.05.2013

    3

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

    07.05.2013
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..