Wenn Sie eine Funktion erstellen und Parameter übergeben , um es in PHP: Hypertext Preprocessor , müssen Sie den Umfang der Parameter zu verstehen . PHP zwingt Sie dazu, speziell deklarieren , wenn damit eine Funktion , um die globale Wert eines Parameters zu ändern. In PHP Version 5 , wirkt das Objektmodell wie Objekte behandelt werden, wenn sie als Parameter an Funktionen übergeben . Während das Modell entspricht der gesamten PHP -Standard, bietet es eine Funktion , mit der Sie die globalen Werte des Objekts Mitglieder ohne speziell erklärt dies in der Definition der Funktion zu manipulieren . Parameter Scope
Wenn Sie eine Variable an eine Funktion übergeben in PHP und die Funktion ändert den Wert der Variablen , es hat keinen Einfluss auf den Wert der Variablen außerhalb des Anwendungsbereichs der Funktion. Damit eine Funktion, um den Wert einer Variablen ändern, müssen Sie erklären ausdrücklich, diese Absicht durch Voranstellen den Namen der Variablen mit einem kaufmännischen in der Definition der Funktion . Zum Beispiel:
Funktion modify_param , ( & param) {}
Wert oder Referenz
Eine Funktion kann nicht ändern, den Wert einer Variablen außerhalb ihren eigenen Gültigkeitsbereich , da PHP die Variable übergibt nach Wert . Es erstellt eine Kopie der Wert der Variablen und übergibt die Kopie an die Funktion. Jegliche Änderungen an diesem Wert wirken sich nur auf die lokale Kopie . Wenn Sie durch Bezugnahme mit dem Ampersand in der Definition der Funktion übergeben , übergibt PHP einen Zeiger auf den Speicher-Adressraum , der den Wert der Variablen. Operationen an der Variable werden dann gegen den globalen Wert der Variablen , nicht eine Kopie seines Wertes durchgeführt .
Übergeben von Objekten
Wenn Sie ein Objekt übergeben als Parameter an eine Funktion , PHP noch geht das Objekt nach Wert, aber es spielt eine andere Art von Wert . Eine Kopie eines Objekts Griff, oder Kennung wird an die Funktion übergeben . Die Objekt-ID kann die Funktion die Speicheradresse in dem die Werte des Objekts Mitglieder gespeichert werden können. Dies bedeutet, dass ein Objekt die Mitglieder tatsächlich per Referenz übergeben . Operationen, die die Eigenschaften eines Objekts verwenden und Methoden manipulieren die Speicheradressraum der Mitglieder und ändern ihre globale Werte .
Object Handle kopieren
Nicht alle Objekte in PHP übergeben Bezug genommen wird, auch wenn Änderungen an dem Objekt Mitglieder beeinflussen globale Werte . Eine Kopie des Objekt-Handle wird an eine Funktion übergeben . Wenn eine Funktion macht eine Zuordnung, die das Objekt Griff selbst ändert , ist , dass der Wandel nicht ändern das Objekt zu behandeln , da sie durch einen Wert übergeben wird . Damit eine Funktion des Objekts Griff zu ändern, müssen Sie das Objekt als Verweis übergeben , so wie man es mit jedem anderen Variablen in PHP.