Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Memanggil Fungsi PHP dengan Bilangan Pembolehubah Argumen?

Bagaimana untuk Memanggil Fungsi PHP dengan Bilangan Pembolehubah Argumen?

Susan Sarandon
Susan Sarandonasal
2024-11-08 10:40:02489semak imbas

How to Call a PHP Function with a Variable Number of Arguments?

Panggil Fungsi PHP dengan Bilangan Argumen Pembolehubah

Apabila berurusan dengan fungsi PHP yang menerima nombor pembolehubah argumen, bilangan parameter yang dihantar ke fungsi boleh ditentukan berdasarkan panjang tatasusunan. Untuk mencapai matlamat ini, PHP menyediakan beberapa teknik:

call_user_func_array

Jika argumen disimpan dalam tatasusunan, fungsi call_user_func_array boleh digunakan. Fungsi ini menerima tatasusunan sebagai parameter kedua, yang mengandungi argumen fungsi.

Contoh:

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

$params = [
  10,
  'glop',
  'test',
];

call_user_func_array('test', $params);

Kod ini akan mengeluarkan:

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

untuk Gelung

Pilihan lain ialah menggunakan gelung for untuk lelaran ke atas tatasusunan dan menghantar setiap elemen sebagai hujah kepada fungsi.

Contoh:

function test($num1, $str1, $str2) {
  var_dump(func_get_args());
}

$params = [
  10,
  'glop',
  'test',
];

for ($i = 0; $i < count($params); $i++) {
  test($params[$i]);
}

Kod ini akan mengeluarkan:

array(1) {
  [0] => int 10
}
array(1) {
  [0] => string 'glop' (length=4)
}
array(1) {
  [0] => string 'test' (length=4)
}

Dengan menggunakan teknik ini, anda boleh memanggil fungsi PHP dengan berkesan dengan bilangan argumen yang berubah-ubah berdasarkan panjang satu tatasusunan.

Atas ialah kandungan terperinci Bagaimana untuk Memanggil Fungsi PHP dengan Bilangan Pembolehubah Argumen?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn