Heim > Backend-Entwicklung > PHP-Tutorial > Implementierung variabler PHP-Parameter

Implementierung variabler PHP-Parameter

PHP中文网
Freigeben: 2023-02-28 22:48:02
Original
1978 Leute haben es durchsucht

Anmerkung des Herausgebers: Der erste Weg, an den ich gedacht habe, war die Verwendung von Arrays oder die Verwendung von Makros in der C-Sprache, aber ich habe im Internet verschiedene Implementierungsmethoden in PHP gefunden, also habe ich den Artikel hier noch einmal abgedruckt

Zuerst all , wir müssen eine PHP-Funktion schreiben, um die Summe zweier Zahlen zu berechnen, die wie folgt geschrieben werden kann:

/**
 *计算两个数的和,并返回计算的结果
 * @param number $a
 * @param number $b
 * @return number
 */
function sum($a, $b){
    return $a + $b;
}
Nach dem Login kopieren

Wenn wir die Summe dreier Zahlen berechnen müssen, können wir sie auch schreiben wie folgt:

/**
 *计算两个或三个数的和,并返回计算的结果
 * @param number $a
 * @param number $b
 * @return number $c 该参数可以不传入值,默认为0
 */
function sum($a, $b, $c =0){
    return $a + $b + $c;
}
Nach dem Login kopieren

Wenn wir an diesem Punkt die Summe einer beliebigen Zahl berechnen müssen, wie müssen wir dann eine PHP-Funktion schreiben?

Natürlich können Sie erwägen, ein Array als übergebenen Parameter der Funktion zu verwenden, um eine solche Funktion zu erreichen:

/**
 *计算任意多个数的和,函数参数params必须为array类型
 * @param array params
 */
function sum($params){
    $total =0;
    foreach($params as $i){
        $total += $i;
    }
    return $total;
}
Nach dem Login kopieren

Nun, an diesem Ansatz ist in der Tat nichts auszusetzen, denn er Wenn während des Programmentwicklungsprozesses vor der Geburt variabler Parameter eine beliebige Anzahl von Parametern übergeben werden musste, wurden Arrays oder ähnliche Sammlungen zu deren Darstellung verwendet. Erscheint diese Art der Übermittlung jedoch nicht klar und intuitiv genug? Als PHP-Programmierer sollten Sie wissen, dass es in PHP eine Funktion var_dump() zum Anzeigen detaillierter Informationen zu Variablen gibt, zum Beispiel:

$age =18;
var_dump($age);//显示变量$age的详细信息
Nach dem Login kopieren

Wenn wir Informationen zu mehreren Variablen anzeigen müssen, können wir dies auch tun Verwenden Sie es so:

$name ='张三';
$age =18;
$gender =true;
var_dump($name, $age, $gender);
Nach dem Login kopieren

Wir wissen, dass var_dump() eine beliebige Anzahl von Variablen gleichzeitig empfangen kann und nicht in Form eines Arrays übergeben werden muss ist intuitiver und eleganter. Diese Form der Übergabe beliebig vieler Parameter nennt man variable Parameter. Natürlich kann unsere Funktion sum() auch so implementiert werden:

/**
 *计算任意多个数的和,并返回计算后的结果
 */
function sum(){  //这里的括号中没有定义任何参数
    $total =0;
    //使用func_get_args()来获取当前函数的所有实际传递参数,返回值为array类型
    $varArray = func_get_args();
    foreach($varArray as $var){
        $total += $var;
    }
    return $total;
}
Nach dem Login kopieren

/*****Das Folgende ist ein Aufrufbeispiel*****/

echo sum(1,3,5);  //计算1+3+5
echo sum(1,2);//计算1+2
echo sum(1,2,3,4);   //计算1+2+3+4
Nach dem Login kopieren

Wie im obigen Beispiel gezeigt, as solange Durch die Verwendung der in PHP integrierten Funktion func_get_args() in der aktuellen Funktion können wir das tatsächliche Parameterarray erhalten, das beim Aufruf der Funktion übergeben wird, und müssen dann nur noch das Parameterarray verarbeiten.

Bemerkungen 1: 1. Wenn beim Aufruf keine Parameter übergeben werden, dann gibt die Funktion func_get_args() immer noch einen Array-Typ zurück, aber ein leeres Array (das Array enthält keine Elemente). 2.func_get_args() kann nur innerhalb einer Funktion aufgerufen werden, andernfalls wird eine Warnmeldung angezeigt. 3. Die Funktion func_get_args() kann einen Indexparameter empfangen, um den Parameter am angegebenen Index im Parameterarray abzurufen. Wenn Sie beispielsweise das erste übergebene Argument erhalten möchten, können Sie Folgendes aufrufen: func_get_args(1). 4. Darüber hinaus können Sie in der Funktion auch func_num_args() aufrufen, das die Anzahl der im aktuellen Funktionsaufruf übergebenen Parameter zurückgeben kann.

Anmerkung 2: Die Implementierung variabler Parameter in PHP ist der Implementierung variabler Parameter in JavaScript sehr ähnlich. PHP verwendet zur Implementierung die integrierte Funktion func_get_args(), und JavaScript verwendet die integrierte Funktion variable Argumente, um es zu implementieren.

Anmerkung 3: Im endgültigen Funktionscode sum() definiert die Funktion sum() keine formalen Parameter, sodass beim Aufruf dieser Funktion 0, 1, 2~n Parameter übergeben werden können. Im Allgemeinen werden jedoch mindestens zwei Zahlen benötigt, um die Summe zu berechnen. Daher können Sie bei der Definition der Funktion sum() zwei formale Parameter definieren, zum Beispiel: sum($a, $b), und der andere Code bleibt unverändert. Auf diese Weise müssen Sie beim Aufruf dieser Funktion mindestens zwei Parameter übergeben.

Anmerkung 4: Da PHP über eine integrierte Funktion array_sum() verfügt, die die Summe aller Elemente in einem Array berechnet, lautet die endgültige Version des obigen Codes wie folgt:

/**
 *计算任意多个数的和,并返回计算后的结果
 */
function sum($a, $b){
    return array_sum(func_get_args());
}
Nach dem Login kopieren

Das Obige stellt vor, wie PHP variable Parameter implementieren kann, einschließlich Aspekten des Inhalts. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

Verwandte Artikel:

php Wie übergebe ich jedes Element eines Arrays als tatsächlichen Parameter einer variablen Parameterfunktion?

php-Variablenparameter

Der Unterschied zwischen JS und PHP bei der Übergabe variabler Parameter an Funktionen Beispielcode

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage