or die ...

Ralph

Дикий столяр
or die ...

Добрый день.Я думаю,всем знакома конструкция вида
mysql_connect/fopen or die ... ,да и я столько времени бездумно ею пользовался,а сейчас все-таки заинтересовало... Как я понимаю,это аналог Shell'овских || и &&,но может мне кто-нибудь указать место в документации,где описана эта конструкция ? Буду очень благодарен
 

mity

Новичок
Это булева алгебра
PHP:
//по идее запись должна выглядеть так
$Result= (($h=fopen()) or ( die()));
//Если выполнилось первое условие  ($h=fopen()==true, то и незачем вывзывать die, результат в любом случае будет true
//А если ($h=fopen()==false, то надо вызвать die() и посмотреть её результат

//но эту запись упрощают
$h=fopen() or  die();
 

Ralph

Дикий столяр
Ага,ясно ... Просто я привык,что в булевых операциях присутствуют три операнда : первый OR/AND/XOR второй --> результат,поэтому при использовании в IF/WHILE вопросов не возникало.И до каких пор действует условие-до символа перевода строки или ...
 

Вурдалак

Продвинутый новичок
Ralph
Человек выше описал ясно.

-~{}~ 20.04.10 21:19:

Автор оригинала: Ralph
Просто я привык,что в булевых операциях присутствуют три операнда
— а что, по-твоему, значит «операнд»?
 

mity

Новичок
Переводы строки это всё бейскик,
"условие" действует до ";" которую я забыл
 

Ralph

Дикий столяр
B том-то и дело,что не совсем ясно...Выполняется только одна функция после OR ?
 

mity

Новичок
сколько угодно
PHP:
//Последовательно пытаемся открыть хотя бы один файл, если открыли то продолжаем работать, не открыли выходим по die()
($h=fopen("1.txt")) or ($h=fopen("2.txt")) or ($h=fopen("1.txt")) or die() ;
 

Ralph

Дикий столяр
вурдалак,неверно выразился ... Подвело радиоэлектронное прошлое.Там нет последовательной проверки и чтобы на выходе логического элемента получить строго определенное значение,логический 0/1 должен быть подан обязательно на ДВА входа,иначе выходное значение может прыгать от 0 к одному и обратно чуть ли не каждую микросекунду.
mity Спасибо.Жаль,значит, or my_function();return; не проканает :(
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
нет никаких входов :)

почему же, "... or my_function(); " будет работать

Впрочем, это плохой стиль.
 

Beavis

Banned
не надо вообще так писать! потом сложно код читать
ладно ещё or die, но иногда такое можно увидеть, что приходится булеву алгебру вспоминать))
 

Ralph

Дикий столяр
Да я в принципе самому ближе присвоить переменной результат выполнения функции,затем проверка и т.д
Но вот вчера че то шарахался по мануалу,пару раз наткнулся на это,да и подумал:мож так и правда удобнее/лучше,все таки в оф.документации применяется ...
Спасибо за советы
 
Сверху