• 19.07.2025, 20:12
  • Registrieren
  • Anmelden
  • Du bist nicht angemeldet.

 

BloodHound

Senior Member

referenzvariablen

Freitag, 20. Januar 2006, 11:35

hi

könnt ihr mitr erklären wie man in php bzw javascript in funktionen mit referenzvariablen arbeitet statt mit return

also dass werte weitergegeben werden ich sags euch der lehrer nervt mich schon gewaltigt ;)
For Windows reboot
for Linux be root

crushcoder

God

Re: referenzvariablen

Freitag, 20. Januar 2006, 12:03

in javascript: indem du ein objekt übergibst und dessen wert änderst.
objekte werden immer als referenz übergeben.

bei php genauso, man kann dies aber auch für einfache variablen durch ein "&" vor dem variablennamen in der funktions-deklaration erzeugen.

zb:

Quellcode

1
function by_reference(&$a, &$b){}
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

pharao

Moderator

Re: referenzvariablen

Freitag, 20. Januar 2006, 14:42

ich weiß jetzt nicht, wie es in php & javaScript aussieht, aber vorsicht mit Strings, in Java z.B. sind Strings nicht veränderbar, da man z.B. Hashwerte aus ihnen generieren kann, und bei einer Veränderung eben dieser Hashwert nicht mehr stimmen würde.
einfach mal ausprobiern ;)
Gute work-live-balance ist, wenn man von seinem Privatleben erschöpfter ist als von der Arbeit.

crushcoder

God

Re: referenzvariablen

Freitag, 20. Januar 2006, 15:35

strings in java sind schon was spezielles. ;)
die kann man in solchen fällen eher als primitiven typ sehen, die also by-value einer methode übergeben werden.

das mit dem veränderten hashwert ist ein nebeneffekt der immutablen strings, nicht der grund dafür.
der grund dafür sind wohl geschwindigkeit und speicherplatzverbrauch.

will man einen string den man in einer methode verändern kann nimmt man einen StringBuffer. aber das ist jetzt ein klein wenig off-topic.

bei php sollte das keinen unterschied machen, da wird afaik durch das "&" eine referenz auf die variable übergeben, nicht der wert der variablen (der wert ist ja eine referenz wenn die variable auf ein objekt zeigt).
dadurch kann man der variablen außerhalb der methode einen neuen wert zuweisen, das geht bei java garnicht.

bei javascript weiß ichs nicht.

ist ja auch egal, wir wollen den lehrer ja nicht verwirren.
Gott hat die Welt ja nur in sieben Tagen erschaffen können, weil es keine installierte Basis gab.

Rotring

Full Member

Re: referenzvariablen

Freitag, 20. Januar 2006, 15:50

call by value = Funktion den Wert einer Variablen übergeben
call by reference = Funktion die Speicheradresse einer Variablen übergeben.

Y0Gi

God

Re: referenzvariablen

Freitag, 20. Januar 2006, 16:33

http://de3.php.net/manual/de/language.references.php

Strings sind in Sprachen wie Java oder Python atomar/immutable, d.h. unveränderbar. Um einen String zu "ändern", wird ein neuer String mit dem gewünschten Ergebnis erzeugt, nicht der bestehende bearbeitet. Da das Erzeugen eines neuen Strings in der Masse relativ viel Performance schlucken kann, sollte man eine join()-Methode (oder Äquivalentes) verwenden, um mehrere Strings zu vereinen, anstatt in einer Schleife `str1 += x` auszufüren. Einige drohen dafür sogar Schläge in ihren Code Conventions an ;)

BloodHound

Senior Member

Re: referenzvariablen

Freitag, 20. Januar 2006, 17:15

danke
For Windows reboot
for Linux be root