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 02:22:59 +0100


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

Du sollst nichts verlangen, womit Du Dir auf den Fuß hauen kannst. Und
sei froh, daß es überhaupt dieses bisserl Referenzen gibt. Buggy waren
(sind?) sie ja schon lange genug.

Frag mal Kris zum Thema, der hält immer einen Vortrag darüber was man da
so richtig in der Zend Engine verbockt hat, was solltest Du auch sonst
erwarten können. Er bringt gerne den Vergleich, daß Referenzen als hard-
statt als softlink implementiert wurden.

> > 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.

Also mir würde es schon genügen, wenn die Referenzen wasserdicht
funktionieren, wann immer ich sie benutze, ob nun bei Objekten oder in
rekursiven Funktionsaufrufen. Das hier ist relativ neu von der Zend CVS
Liste: 

Log Message:
- Support for $var =& new foo() syntax. This allows you to use objects
  which create extra references to themselves in the constructor.

Mir war ebenfalls noch nicht bekannt, daß Referenzen auf Objekte schnell
geworden sind. Pass-by-value ist immer schneller als pass-by-reference.
Dies bringt sogar soviel, daß ich Testskripte bauen konnte bei denen
Objekte schnellere Datencontainer waren als Arrays. Das ist erstaunlich,
da eigentlich die Zugriffe auf Objektvariablen schnarchlangsam sind.

Ulf


php::bar PHP Wiki   -   Listenarchive