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