PHP: Различия операторов and, or, || и &&

Микрозаметка на тему из области «вопросы на собеседовании».

Какое-то время назад начал писать and и or вместо && и ||, потому что мне так нравится делать на питоне, и это улучшает читабельность кода. Однажды я столкнулся с неожиданным эффектом:

Как оказалось, логические операторы and и && (or и ||) не являются просто синонимами, а имеют разный приоритет выполнения: все «символьные» (&&, ||, !) операторы выполняются до оператора присваивания =, а and, or, xorпосле.

Подробно об этом написано в официальной документации.

Что это значит на практике:

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

Загрузка...