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 21:54:17 +0100


At 18:46 12.12.2000 +0100, you wrote:
>ja, das hatte ich ja wohl auch festgestellt.
>Ich moechte ja auch gar keine Pointer (baeh, baeh, baeh),
>sondern nur die Moeglichkeit Referenzen als "first class Datentyp"
>benutzen zu koennen. Man *muss* das nicht haben, aber es ist
>in vielen Faellen sehr handlich.

das liegt wohl daran, das (noch) nicht an referenzen zu denken war als sie 
schon benutzt wurden :)
andi gutmans: "Now I'm aware that the whole reference thing is a bit 
confusing, mainly because it started out as an internal Zend Engine feature 
(for the executor) but ended up being used by people (with the =& operator 
for example which was later introduced). "

> > $foo1 =& $foo2
>        ^^^^
>Es gibt halt einen '=&'-Operator.
>Das gemeine ist, dass im Handbuch die Schreibweise $foo = &$bar
>verwendet wird, welche die Existenz eines Referenz-Operators "&"
>vermuten laesst.

dennoch ist die jetzige implementierung sicher performanter ist als ein 
vollwertiger referenz operator (mit der derzeitigen zend engine)

> > function &foo();
>
>*Wenn* Referenzen auch explizit benutzt werden koennten,
>waere diese Sondersyntax nicht notwendig.
>
>
> > function foo(&foo)
>
>ok. call-by-reference; aber das gab's ja schon frueher
>und gehoert IMHO nicht zum Kern der 'hier' diskutierten
>Problematik.

nur der vollständigkeit halber :)

>Aber genau if/then/else moechte man fuer so simple
>Fallunterscheidungen ja vermeiden.

hmm, es geht doch, jedoch durch das fehlen eines dedizierten operators ist 
dieser ansatz nicht möglich,
wenn man auf den ternary operator (be)steht wäre also nur folgendes möglich.
<?php
  $var1 = 5;
  isset($var1) ? $var2 =& $var1 : $var2 = 5;
?>

> > lies nochmal http://php.net/manual/language.references.return.php
>
>IIRC gab's das zur Zeit unserer ersten Referenz-Experiment
>noch nicht. (Kann das sein oder wurde das alles 'gleichzeitig'
>eingefuehrt?)


k.A, ich glaube nicht.
es gibt sie jedoch schon seit einer weile.

daniel

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



php::bar PHP Wiki   -   Listenarchive