phpbar.de logo

Mailinglisten-Archive

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

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

Daniel Beulshausen daniel_(at)_php4win.de
Tue, 12 Dec 2000 11:27:09 +0100


At 02:07 12.12.2000 +0100, you 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?)

& ist einfach kein operator, es gibt keine pointer wie in c. möglich ist:

$foo1 =& $foo2
function &foo();
function foo(&foo)

was imo auch völlig ausreichend ist :)

http://marc.theaimsgroup.com/?l=php-dev&m=97500895222948&w=2
http://php.net/manual/language.references.php


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

ja, du hast recht. ich sehe gerade das der unterausdruck evaluiert wird, 
dann wäre der weg über if/else am "schönsten".

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

lies nochmal http://php.net/manual/language.references.return.php


daniel

/*--
daniel beulshausen - daniel_(at)_php4win.de
using php on windows? http://www.php4win.de



php::bar PHP Wiki   -   Listenarchive