Это для тех, кто хоть немного знаком с программированием.

PHP (любой версии). Код:

$foo = false or true;
print($foo ? ‘true’ : ‘false’);

Что выведет программы при выполнении?
/ответ под катом/

Выведет: false

Удивлен? Давай разберемся, почему.
Я всегда думал, что в PHP операторы || и OR - одно и то же, синонимы. Оно так и есть - оба - логическое ИЛИ, но с одним отличием.
У оператора OR приоритет ниже плинтуса. Ниже только у оператора перечисления “,”.

Поэтому и получается, что сначала переменной $foo присваивается значение false (т.к. приоритет оператора присваивания выше приоритета оператора OR), а затем выполняется часть “or true”, результат которой просто игнорируется.

К слову, та же песня с оперторами && и AND.