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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽