Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah anda boleh menghantar bilangan argumen yang berubah-ubah kepada fungsi PHP berdasarkan panjang tatasusunan?

Bagaimanakah anda boleh menghantar bilangan argumen yang berubah-ubah kepada fungsi PHP berdasarkan panjang tatasusunan?

Patricia Arquette
Lepaskan: 2024-11-09 08:27:02
asal
802 orang telah melayarinya

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

Melalui Argumen Dinamik dalam Fungsi PHP

Dalam PHP, adalah mungkin untuk mencipta fungsi yang menerima nombor pembolehubah argumen menggunakan func_num_args() dan func_get_args(). Walau bagaimanapun, menentukan hujah untuk dihantar ke fungsi tersebut boleh mencabar jika nombornya bergantung pada panjang tatasusunan.

Menggunakan call_user_func_array

Nasib baik, PHP menyediakan fungsi call_user_func_array, yang membolehkan anda memanggil fungsi dengan pelbagai argumen. Jika bilangan argumen yang anda ingin luluskan ditentukan oleh panjang tatasusunan, anda boleh membungkusnya ke dalam tatasusunan dan menggunakannya sebagai parameter kedua call_user_func_array.

Contoh

Pertimbangkan fungsi berikut:

function test() {
  var_dump(func_num_args());
  var_dump(func_get_args());
}
Salin selepas log masuk

Untuk memanggilnya dengan pelbagai argumen daripada tatasusunan, anda boleh melakukan perkara berikut:

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

call_user_func_array('test', $params);
Salin selepas log masuk

Output

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

Ini menunjukkan bahawa fungsi telah menerima tiga parameter, seolah-olah ia dipanggil secara eksplisit dengan:

test(10, 'glop', 'test');
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah anda boleh menghantar bilangan argumen yang berubah-ubah kepada fungsi PHP berdasarkan panjang tatasusunan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan