Логические операторы PHP: and, or vs &&, ||?

Да, у них разные приоритеты по отношению к операторам присваивания.
Есть случаи, когда одно удобнее другого:
$is_ok = isset($x) && $y>0; 
if( $x = is_good() and $y>0 ) ...

Но в большинстве случаев никакой разницы нет, вопрос лишь в стиле, в читаемости.
Какой стиль предпочтительнее выбирать, когда нет разницы?
  • Вопрос задан
  • 563 просмотра
Пригласить эксперта
Ответы на вопрос 2
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Поскольку у && приоритет выше, то традиционно выбирают его, чтобы потом не было неожиданностей, как во втором примере.

Я, собственно, не вижу никакого удобства во втором случае.
Код должен читаться на лету, без необходимости вчитываться и производить логические вычисления в голове с учётом приоритета выполнения операторов. А здесь мы видим эталонный говнокод, который надо переписать на
$x = is_good();
if($x and $y>0)

Я оставил здесь AND для наглядности, но по-хорошему я бы заменил на &&, просто чтобы следовать единому стилю.
Ответ написан
fStrange
@fStrange
Вопрос привычки.
Вариант с && используется большинством прогеров и поэтому более читаем и лучше использовать его.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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