«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как вызвать функцию PHP с переменным количеством аргументов?

Как вызвать функцию PHP с переменным количеством аргументов?

Опубликовано 10 ноября 2024 г.
Просматривать:206

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

Вызов функции PHP с переменным количеством аргументов

При работе с функциями PHP, которые принимают переменное количество аргументов, количество параметров передаваемое в функцию, может быть определено на основе длины массива. Для этого PHP предоставляет несколько методов:

call_user_func_array

Если аргументы хранятся в массиве, можно использовать функцию call_user_func_array. Эта функция принимает массив в качестве второго параметра, который содержит аргументы функции.

Пример:

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

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

call_user_func_array('test', $params);

Этот код выведет:

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

for Цикл

Другой вариант — использовать цикл for для перебора массива и передачи каждого элемента в качестве аргумента функцию.

Пример:

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

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

for ($i = 0; $i 

Этот код выведет:

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

Используя эти методы, вы можете эффективно вызывать функции PHP с переменным количеством аргументов в зависимости от длины массива.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3