Я не понимаю разницы, вот в упор между нулем и false.
Разница в их выполнении интерпретатором. Например, в случае логических операторов в выражении УСЛОВИЕ1 || УСЛОВИЕ2 второе условие выполнено (проверено) не будет если первое верно.
// The result of the expression (false || true) is assigned to $e
// Acts like: ($e = (false || true))
$e = false || true;
// The constant false is assigned to $f and then true is ignored
// Acts like: (($f = false) or true)
$f = false or true;
там все расписано,про разный возврат строковых и других типов(переменные в php могут быть «значением» и у переменных тоже есть тип) после операторов бинарных и and or ...