phpbar.de logo

Mailinglisten-Archive

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

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

Andreas Braukmann braukmann_(at)_tse-online.de
Tue, 12 Dec 2000 02:07:35 +0100


Hi,

(ich bin ganz erstaunt, dass sich hier schon eine so
rege Diskussion entwickelt hatte ...)

On Tue, Dec 12, 2000 at 01:25:28AM +0100, Daniel Beulshausen wrote:
> At 01:00 12.12.2000 +0100, you wrote:
> >Andreas Braukmann wies mich gerade in d.c.l.p auf die offizielle
> >Schreibweise hin: "assignment by reference". PHP hält was es verspricht,
> >auch wenn ich mir etwas mehr Parserintelligenz wünschen würde.

Meinen 'leisen aber deutlichen' Fluch ueber diese 
Unzulaenglichkeit hat Ulf freundlicherweise hier nicht
wiedergegeben ;)

Ich bin recht frueh nach unserem 'ernsthaftem' Umstieg
auf PHP4 auf dieses Misfeature gestossen. Ich hab' 
dreimal das Handbuchkapitel gelesen und zweimal geflucht
und habe mich dann damit abgefunden (bzw. auf die naechsten
Versionen gehofft.)


> es ist =& um variablen eine referenz zuzuordnen, 


Die Implementierung als explizite "Referenz-Zuweisung" find'
ich etwas kurzsichtig. (Sonst reiten die Sprachentwickler
doch auch auf der C(++)-Welle, warum nicht hier auch?)


> richtig wäre daher afaik folgendes

> <?php
> $var1 = "5";
> $var2 =& $var1 == 5 ? $var1 : $var1;
        
> ?>

Das geht aber auch nicht, weil "$var1" als Expression
ausgewertet explizit den "Wert" der Variablen 'var1' liefert.
Von diesem "Wert" kann dann natuerlich keine Referenz mehr
bestimmt werden, zumindest keine Referenz, die tatsaechlich
'var1' referenzieren wuerde.

Wirklich aergerlich finde ich, dass somit (im Moment)
auch kein direktes "return &$myObject" moeglich ist.
Stattdessen muss man ein wenig elegantes 
$tmp = &$myObject; return $tmp;
verwenden.


> andi gutmans hatte vor kurzen eine gute zusammenfassung zu
> referenzen auf php dev gemacht, vielleicht sollte man die
> irgendwie ins manual einarbeiten.

hmmm. Vielleicht sollte ich die doch mal wieder abonnieren
und lokal archivieren.

-Andreas, der im uebrigen der Meinung ist, dass wir einen
ordentlichen Referenz-Operator brauchen koennten :)

-- 
: Anti-Spam Petition:     http://www.politik-digital.de/spam/          :
: PGP-Key:                http://www.tse-online.de/~ab/public-key      :
: Key fingerprint:  12 13 EF BC 22 DD F4 B6  3C 25 C9 06 DC D3 45 9B   :


php::bar PHP Wiki   -   Listenarchive