Конструкция: "or die"

pamgmen

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

Увидел такой код:
$lnk = mysql_connect('localhost', 'mysql_user', 'mysql_password')
or die (
'Not connected : ' . mysql_error());

mysql_select_db('foo', $lnk) or die ('Can\'t use foo : ' . mysql_error());

Вопрос по конструкции "or die".
Как она работает? Поискал в интернете, ничего конкрентного...

Если то что справа от оператора "OR" - ложь, то выполняется то что слева, так?

Спасибо заранее.

 

craz

Нестандартное звание
если СЛЕВА какой нить пипец, то умри и перед смертью расскажи чего там у тебя за пипец
 

Vect0r

Новичок
Вот кстати, вопрос, а почему пипец может не возвращаться? То есть mysql_error() даёт пустую строку, но ошибка есть. При этом error_reporting(E_ALL);
 

craz

Нестандартное звание
хм.. имхо или error_reporting(E_ALL); не применилось... либо mysql_errno() пробуйте и смотрите не кеш ли
 

korpus

злой бобёр
Мне тоже интересно.
ссылка - здесь сказано, что mysql_connect() возвращает идентификатор ресурса при успехе и false при неудаче.
Конструкция a=b всегда возвращает true.
PHP:
a=10;
b=20;
if (a=b) echo 'yes';
Результатом всегда будет 'yes'. Поэтому мне тоже не ясно, откуда будет выполняться выражение справа от "or"
 

Вурдалак

Продвинутый новичок
Результатом выражения $a = $b будет новое значение левого операнда (тут неважно, но в выражениях типа $a /= 2, $a .= $b[$i] будет возвращено новое значение $a). Так что если $b содержит false, то и будет возвращено false.

«or die» — это не какая-то особая конструкция, а следствие интерпретации цепочки типа «expr1 or expr2 or expr3 or ...»: цепочка выражений вычисляется слева направо и если какое-то из выражений равно true, то все последующие не вычисляются, так как не имеет смысла (выражение всегда будет true).
 

pamgmen

Новичок
«or die» — это не какая-то особая конструкция, а следствие интерпретации цепочки типа «expr1 or expr2 or expr3 or ...»: цепочка выражений вычисляется слева направо и если какое-то из выражений равно true, то все последующие не вычисляются, так как не имеет смысла (выражение всегда будет true).
Проверил, работает. Спасибо.
А ссылка на документацию или что-то подобное есть?
 

Yoskaldyr

"Спамер"
Партнер клуба
Я думаю надо автоматически менять авку на какую-то милоту типа картинки выше при некропостинге :))))
 
Сверху