Mailinglisten-Archive |
Hallo, dieses Resultat ist interessant und irgendwie nicht sehr offensichtlich. In der Liste der Rangfolge werden beide "nur" mit links angegeben http://www.php.net/manual/de/language.operators.php links || links or http://www.php.net/manual/de/language.operators.logical.php ** $a or $b Oder *TRUE* wenn $a oder $b *TRUE* ist. $a || $b Oder *TRUE* wenn $a oder $b *TRUE* ist. Der einzige Hinweis dafür ist der folgende: Der Grund dafür, dass es je zwei unterschiedliche Operatoren für die "Und"- und die "Oder"-Verknüpfung gibt ist der, dass die beiden Operatoren jeweils Rangfolgen haben. (siehe auch Operator-Rangfolge <language.operators.php#language.operators.precedence>.) Meine Frage wäre nun: Ist die Dokumentation unvollständig oder aus welchem Teil der Dokumentation kann ich diese Information entnehmen? *Tabelle 15-1. Operator-Rangfolge scheint mir nicht aussagekräftig genug oder ich lese die Tabelle falsch. * p.s. sorry wenn die mail eventuell nicht im thread landet... Vielen Dank im Voraus, Michel > Das Problem ist das || nach dem imap_open. Entsprechend der Operator-Reihenfolge[1] wird zunächst || und dann = ausgewertet. d.h. das Ergebnis von imap_open (in diesem Fall eine Resource) wird genommen. Der || Operator sieht, dass der, nach cast zu bool, true ist und wertet die(...) nichtmehr aus. Der Rückgabewert dieser Boolschen-Operation (true) wird dann durch das = an $mbox zugewiesen. echo macht dann ein Cast zu einem String, somit wird aus true ein String "1". > > Was du willst ist "or" statt "||". Da hat dann "=" Vorrang vor dem "or". > > $mbox = imap_open ("{localhost:143 /imap/tls/novalidate-cert}", "cyrus", "PASSWORT", OP_HALFOPEN) OR die ("can't connect: ".imap_last_error()); > > da wird zunächst imap_open ausgeführt, das ergibt Resource, dann die Zuweisung ausgeführt, also $mbox bekommt die Resource, das "Ergebnis" einer Zuweisung ist der zugewiesene Wert also Resource, damit wird "or" ausgewertet, dass ist true somit wird das die() auch nichtmehr ausgewertet. > > johannes > > [1] http://php.net/operators > > -- Highspeed-Freiheit. Bei GMX supergünstig, z.B. GMX DSL_Cityflat, DSL-Flatrate für nur 4,99 Euro/Monat* http://www.gmx.net/de/go/dsl
php::bar PHP Wiki - Listenarchive