2015-02-07 3 views
5

У коллеги и я, очевидно, имеют разные стили для! оператора в PHP. Я обычно пишуPHP код кодирования для не-оператора

if (!$x) { 
    $y = 2; 
} 

Но он предпочитает расстояние! от переменной.

if (! $x) { 
    $y = 2; 
} 

Что может привести к чему-то вроде этого

if ($x && ! $y) { 

, который выглядит странно для меня.

Обычно мы стараемся следовать за PSR-2, но я не эксперт по этому вопросу и не нашел явной рекомендации. Для других типов операторов есть пространство до и после

if ($x === false) { 

И

if ($x > $y) { 

Тогда есть &

$x = & $y; 

Я обычно не делают это, так что не есть мнение.

Может ли кто-нибудь указать требование PSR для! пример? Если нет, есть ли другое правило, которое следует соблюдать? Наши форматы IDE сейчас дуэли.

+0

У нас есть стандарт, который говорит 'if ('text' == $ variable)' или 'if (! $ X)' и yep мы используем 'if ($ x &&! $ Y)'. Множество интервалов происходит, чтобы сделать код «легче», легче читать. – RST

+0

Спасибо. BTW PSR-2 не имеет пробелов после (и до), поэтому не так много пробелов. – Matt

+0

Вы бы написали «2 + - 3»? –

ответ

12

Прежде всего: делайте все, что захотите.

Во-вторых, здесь два соглашения стиле из двух крупных проектов, Drupal:

унарные операторы (операторы, которые работают только на одно значение), такие как ++, не должно иметь место между оператором и переменная или число, над которыми они работают.

и Symfony:

Место унарные операторы (!, -- ...) Рядом с пораженной переменной

Таким образом, небольшой опрашивается образец здесь (просто первое, чтобы показать на Google) не предписывают нет места. Который, на личном уровне, я бы согласился.

-2

О, не обсуждайте такие незначительные условности. Если я прочитал if (!$x) { или if (! $x) {, первый вопрос - это то, что такое $ x? Для меня $ x является скоординированным или, возможно, счетчиком, поэтому операции bool похожи на while($i--) {}, экономя дорогой байт, делая код более легким для чтения или просто неудачным в названии этой переменной bool.

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

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

Другое дело в написании методов, атрибутов и функций небольших верблюжьих, const с заглавными буквами и подчеркиванием и т. Д.

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

  • Нет связанных вопросов^_^