Einzelnen Beitrag anzeigen

OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#3

Re: [php]: $a=1; print(2*$a=10); Was erwarted ihr?

  Alt 18. Jun 2007, 10:25
Hmm, die Frage ist, für welche Art von Operanden die Zuweisung überhaupt gültig ist. Du erwartest 2, weil 2 * $a 2 ergibt und die anschließende Zuweisung 2 = 10 lautet? Wenn überhaupt, wäre das Ergebnis dieser Zuweisung doch 10, wie mkinzler schreibt. Aber kann man dem Ausdruck 2 * $a überhaupt etwas zuweisen? Der Zuweisungsoperator kann sich doch eigentlich nur auf das $a beziehen und dann logischerweise auf die Version vor dem Ausdruck (2 * $a ändert den Wert von $a nicht). Das wäre jetzt meine Interpretation. Von daher würde ich ohnehin 20 erwarten.
In der Doku steht dazu:
Zitat von PHP:
Obwohl ! einen höheren Rang gegenüber = hat, erlaubt es Ihnen PHP immer noch ähnliche Ausdrücke wie den folgenden zu schreiben: if (!$a =foo()).In diesem Ausdruck wird die Ausgabe von foo() der Variablen $a zugewiesen.
Was genau dieses Verhalten beschreibt. Die Zuweisung bezieht sich auf die Variable. Das ist wohl ein Sonderfall.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat