• 28.04.2024, 07:59
  • Registrieren
  • Anmelden
  • Sie sind nicht angemeldet.

 

Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

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

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.

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.

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.

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.

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 ;)

Re: referenzvariablen

Freitag, 20. Januar 2006, 17:15

danke
For Windows reboot
for Linux be root