Autor Zpráva
Anonymní
Profil *
Zdravím. Ako je to z operátorom OR v PHP?
Teda predpokladám, že zápis
MySQL_Select_DB("databaza") OR die(mysql_error($spojenie));
je ekvivalentny
if (!MySQL_Select_DB("databaza")) die(mysql_error($spojenie));

ale ako je to z
$spojenie = MySQL_Connect("localhost", "root") OR die("chyba...");
?

Teda sa výraz vyhodnotí ako false v prípade že funkcia vráti 0 teda do $spojenie sa priradi 0, alebo sa vyhodnoti ako true stale, pretože do $spojenie sa stale priradí nejaká hodnota, lebo $nieco = $nieco_ine je stále true?

A ako je to s prioritou operátorov OR a || ? V Perli je priorita rozdielna, v PHP môžem použiť oboje rovnako ?
Retal
Profil
Ahoj, to je zajímavá otázka.
funkce1() OR funkce2();
Pokud funkce1() vrátí false, vykoná se funkce2().

Druhý příklad
$var = f1() OR f2();

f2() se vykoná, pouze vrátí-li f1() false. Ale do $var se přiřadí pouze f1(), nezávisle na jejím výsledku. To vyplývá koneckonců z Operator Precedence. Přiřazení má vyšší prioritu než OR.

Jinak by to dopadlo při
$var = (f1() OR f2());
(true, pokud alespoň jedna funkce vrátí true)

a jinak při
($var = f1()) OR ($var = f2());
($var == f1(), pokud ta nevrátí false, jinak $var == f2())


A co se týče OR a ||, viz odkaz výše. || má vyšší prioritu.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0