Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann man einer PHP-Funktion basierend auf der Länge eines Arrays eine variable Anzahl von Argumenten übergeben?

Wie kann man einer PHP-Funktion basierend auf der Länge eines Arrays eine variable Anzahl von Argumenten übergeben?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-09 08:27:02780Durchsuche

How can you pass a variable number of arguments to a PHP function based on an array's length?

Dynamische Argumentübergabe in PHP-Funktionen

In PHP ist es möglich, mithilfe von func_num_args() und Funktionen zu erstellen, die eine variable Anzahl von Argumenten akzeptieren func_get_args(). Allerdings kann die Angabe der an solche Funktionen zu übergebenden Argumente eine Herausforderung sein, wenn ihre Anzahl von der Länge eines Arrays abhängt.

Verwendung von call_user_func_array

Glücklicherweise stellt PHP die Funktion call_user_func_array bereit. Damit können Sie eine Funktion mit einem Array von Argumenten aufrufen. Wenn die Anzahl der Argumente, die Sie übergeben möchten, durch die Länge eines Arrays bestimmt wird, können Sie sie in ein Array packen und es als zweiten Parameter von call_user_func_array verwenden.

Beispiel

Betrachten Sie die folgende Funktion:

function test() {
  var_dump(func_num_args());
  var_dump(func_get_args());
}

Sie können sie mit unterschiedlichen Argumenten aus einem Array aufrufen Folgendes:

$params = array(
  10,
  'glop',
  'test',
);

call_user_func_array('test', $params);

Ausgabe

int 3
array
  0 => int 10
  1 => string 'glop' (length=4)
  2 => string 'test' (length=4)

Dies zeigt, dass die Funktion drei Parameter erhalten hat, als ob sie explizit aufgerufen worden wäre mit:

test(10, 'glop', 'test');

Das obige ist der detaillierte Inhalt vonWie kann man einer PHP-Funktion basierend auf der Länge eines Arrays eine variable Anzahl von Argumenten übergeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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