Почему не работает код с OR

Yastroitel

Новичок
Добрый день!

Пытаюсь воссоздать такую затею

Есть код

$b = $b OR $_SESSION['something'] OR $something;

Задумка такая - если переменная $b уже определена - она остается без изменений - если нет - то она получает значение из сессии - если нет значения в сессии - то некую другую величину.

Код не работал:)

Путем тыка и попыток читать мануал - заменил код на


$b = $b || $_SESSION['something'] || $something;

Вроде бы он заработал

НО!

Эмпирически выяснил, что если двух переменных нет то третья не присваивается. А вместо нее получается просто "1"

Сделал костыль

$b = $b || $_SESSION['something'];

if (!isset($b)) {
$b = $something;
}


Код работает как надо

Но все равно гложет - а что же было неправильно раньше?
Что почитать на эту тему?
Спасибо!
 

Hello

Новичок
@Yastroitel, такое поведение только в JS
В PHP результат операций "OR || AND && !" будет boolean, а не последнее не ложное значение
 
Сверху