• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Übergabe von Funktiosnparametern und Referenzen

Puccini

Neues Mitglied
hi.

wie jeder weis, kann man ja in PHP optionale Parameter definieren und auch so auf die eventuellen Parameter die aneine funktion übergeben werden
PHP:
function test($param1, $optional = "", $optional2 = null)

function test(){
$param = func_get_args()

Jetzt wollte ich aber gerne auch Referenzen übergeben.
Das geht ja mit einem & vor dem Parameter:
PHP:
function test(&$param)
Somit ändere ich quasi die Variable direkt auch in der anderen funktion, welche meine Funtion aufruft.

Wenn ich jetzt jedoch aus meiner Test-Funktion eine weitere Funktion aufrufe und Ihr diese Referenz geben will, muss die nächste funktion diese wieder mit einem & abfragen oder geht es da wieder normal???
PHP:
function test(&$param){
test2_change_param($param);

Hat diese dann quasi die selbe referenz erhalten oder müste ich in der auch wieder über eine neue referenz zugreifen? (schwer zu erklären XD)

hoffe ihr versteht mich. ich will quasi die referenz weitergeben und nicht eine kopie des objektes in der nächsten funktion erhalten!
 
Probiers doch einfach mal aus?


Erstelle eine entsprechende Funktion text2_change_param, welche den wert des Parameters verändert. Dann betrachtest du nach dem Aufruf von test(&$param), ob $param einen anderen Wert hat als vorher.
 
Normalerweise sollte man Variablen, die man in Funktionen verändert, als Rückgabewert zurückgeben.
Ansonsten wird der Quelltext leicht sehr unübersichtlich.
Wenn du mehrere Werte ändern willst, musst du einfach ein Array zurückgeben, aus dem du dann die Werte auslesen kannst.

Eine Ausnahme bilden natürlich Objekte, die du einer Methode übergibst.
Seite PHP 5 werden Objekte glücklicherweise immer als Referenz übergeben.

Weitere Informationen findest du hier: Referenzen auf Variablen (PHP-Tutorial)
 
Zurück
Oben