Die Übergabe von Funktionsparametern in PHP verfügt über eine formale Parameterübergabe (Entlehnung aus Programmiersprachen wie der C-Sprache).
Das heißt, den Wert der Variablen dem Parameter der Funktion zuzuweisen. Alle am Funktionsparameter ausgeführten Operationen haben nichts mit der ursprünglichen Variablen zu tun.
//php function testX( $b ) { return $b-=2; } $a = 5 ; $c = testX($a); print_r($a);//5 print_r($c);//3
Bei der Adressübergabe (Übergabe als Referenz) wird die Adresse der Variablen an den Parameter der Funktion übergeben. Alle Operationen an den Parametern in der Funktion entsprechen Operationen an den Variablen.
//php function testS( &$b ) { return $b-=2; } $a = 5 ; $c = testX($a); print_r($a);//3 print_r($c);//3
In PHP werden Funktionsparameter und Variablen alle Platz im Speicher freigeben, aber die normale Parameterübergabe weist den Parametern Werte zu, während die Referenzübergabe dies nicht tut, sondern die Adresse der Variablen eingibt
Zu dem Bereich, in dem sich die Parameter befinden.
Besonders bemerkenswert ist, dass sich die Art und Weise, Pass-by-Reference zu schreiben, seit PHP5 geändert hat. Wie im obigen Code gezeigt, ändern Sie die Art und Weise, wie PHP geschrieben wird, auf die gleiche Weise wie bei anderen Programmiersprachen. Sie müssen & verwenden, wenn Sie
definieren, und Sie müssen & nicht verwenden, wenn Sie aufrufen. Es unterscheidet sich stark von der vorherigen Schreibmethode.
//php以前的写法 function &testS( &$b ) { return $b-=2; } $c = &testS($a);
Vorteile:
Ich persönlich denke, dass diese Schreibänderung dazu dient, die Einzigartigkeit der PHP-Sprache zu verringern und sich den Schreibmethoden anderer Programmiersprachen anzunähern. In gewissem Sinne ermöglicht es Programmierern, die mit anderen Programmiersprachen vertraut sind, PHP schneller zu beherrschen. Aus Sicht des Codelesens und des logischen Verständnisses werden alle Operationen, die an Variablen innerhalb der Funktion ausgeführt werden, vollständig ignoriert. Für die Codeabstraktion ist es sinnvoller.
Nachteile:
Ich denke, für Programmierer an vorderster Front der Entwicklung ist das eine verrückte Veränderung. Besonders für diejenigen, die eine sekundäre Entwicklung durchführen. Sekundärentwickler müssen auf der Grundlage von Vorgängern entwickeln. Wenn ich Funktionen sehe, bin ich es gewohnt, Referenz-nach-Wert-Funktionen mit & zu unterscheiden. Ohne diese Schreibmethode sind alle Funktionen gleich. Wenn es sich um einen Aufruf einer Referenz-nach-Wert-Funktion handelt, muss der Programmierer hineingehen Funktion zur Überprüfung der Codedetails. Vor allem, wenn ein Fehler im Programm vorliegt. Sie müssen alle Änderungen im Detail verstehen, die durch die Referenz-nach-Wert-Funktion an Variablen vorgenommen werden. Und das Abbrechen des & zum Aufrufen der Referenzfunktion bedeutet, dass Sie alle vom Programm aufgerufenen Funktionen überprüfen müssen (da Sie nicht wissen, welche Funktion die Referenzfunktion ist) kann man sich vorstellen!
Es gibt auch globale Variablen. Dies ist eine direkte und schnelle Möglichkeit, Parameter zu definieren. Legen Sie die Parameter fest, die von der Funktion als globale Variablen verwendet werden sollen. Auf diese Weise verwenden Operationen innerhalb der Funktion direkt die Variable selbst.
Es ist kein Problem, es in einem kurzen Programm zu verwenden, aber dies ist keine ideale Möglichkeit, Parameter beim Aufruf externer Dateien zu definieren!
Das obige ist der detaillierte Inhalt vonSo übergeben Sie Parameter an eine PHP-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!