phpbar.de logo

Mailinglisten-Archive

[php] Warum nicht: $bar = (3 == $foo) ? &$foo : &$foo ?

[php] Warum nicht: $bar = (3 == $foo) ? &$foo : &$foo ?

Ulf Wendel ulf.wendel_(at)_phpdoc.de
Tue, 12 Dec 2000 00:40:07 +0100


Jörg Krause wrote:
> 
> > From: php-admin_(at)_php-center.de [mailto:php-admin_(at)_php-center.de]On Behalf
> > Of Ulf Wendel
> > Sent: Monday, December 11, 2000 11:01 PM
> > warum muß ich statt $bar = (3 == $foo) ? &$foo : &$foo die Langform mit
> > if-else benutzen, um einem Parse Error auf meinem PHP 4.0.5 dev
> > auszuweichen?
> >
> Das hat nichts mit dem o.g. Statement zu tun, auch ein alleinstehendes
> 
> &$var;
> 
> erzeugt den Parserfehler, während

Oh, ja und das ist auch verständlich.
 
> $var;
> 
> ok ist. Da prüft der Parser die Gültigkeit der Syntax und Zugriffe
> auf Referenzen offensichtlich anders als normale Variablen,
> was sicher nachvollziehbar ist. Ich hatte den Effekt auch mit
> if...else (4.0.1pl2).
> Um das zu umgehen, muss man den Ausdruck gültig machen, z.B.
> 
> $dummy = &$foo;

Schade. Kann das dem Parser nicht beigebracht werden? Sofern das
Ergebnis des Statements einer anderen Variable zugewiesen wird, so möge
er nicht meckern. Stets etwas anderes als eine Zuweisung (z.B. ein
print) vor dem bedingten Ausdruck stets, sollte auch weiterhin der
Fehler erscheinen.

Ulf


php::bar PHP Wiki   -   Listenarchive