Re: XML

Sven Lauer <[email protected]>
Newsgroups gmane.comp.lang.ruby.german
Message-ID <[email protected]>
Hallo,

"Tobias Huesgen" <[email protected]> wrote:

> Hallo!
> 
> >> In PHP könnte man sowas machen:
> >> $var1 = "variable";
> >> $$var1 = "Eine Variable";
> >> echo $variable; //Output = "Eine Variable";
> >
> > ist das ein typo?  muesste es nicht heissen:
> >
> > echo $var1; //Output = "Eine Variable";
> 
> Nein, eben nicht. Das ist ja der "Witz" daran. :)
> Bei $$var1 = "Eine Variable"; wird einer Variablen, dessen Name der Inhalt
> von $var1 ist, ein Wert zugewiesen.

Was - in Ruby übertragen - aber missverstaendlich ist. In PHP ist die 
Interpretation straight forward, weil eben alle Variablen mit $ beginnen.
In Ruby nicht, deshalb kann das so auch nicht funktionieren:
Da in PHP der Begin eines Variablennamens mit einem $ angezeigt wird,
hat $$var eine ganz klare Semantik: [Variable mit dem Namen: [Variable
mit dem Namen: var]]. Kraft authoritärer Willkür wird dann festgelegt,
dass das bedeutet, dass wir den Variable ansprechen, deren Name sich
ergibt, wenn wir den Wert von $var an den Variablenanzeiger $ hängen. 
Da nun in Ruby unterschiedliche Variablenanzeiger (bzw. keine) gebraucht
werden, ist ein solches Konstrukt nicht wirklich intuitiv zu realisieren. 
Zudem ist es IMHO nur begrenzt sinnvoll, aber das gilt auch fuer die
PHP-Variante ;-)

ciao,
Sven

P. S. Natürlich könnte man sich etwas wie $#{$var} vorstellen, bzw. dann
auch für lokale Variablen #{var} . Letzteres wuerde dann bedeuten "die
(lokale) Variable, die den Namen trägt, der als String value in der
lokalen Variablen var abgelegt ist." Sieht aber haesslich aus, ist kaum
lesbar und unklar (was passiert, wenn der Inhalt von "var" "$var2" ist -
wird dann eine globale Variable angesprochen? Ist das wirklich sinnvoll?).
Das ganz davon abgesehen, dass PHP per-value zuweist (PHP3
ausschließlich, PHP4 per default), was die "variable Variablen"-Syntax
begünstigt, während Ruby per-reference zuweist. 
Die Überlegungen sind natürlich nur von theoretischer Bedeutung, irb
zeigt, dass es nicht funktioniert, die Überlegungen zeigen höchstens,
warum es das nicht tut, bzw. nicht tun sollte.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.