Функция PHP может принять неограниченное количество параметров?

В PHP существуют функции как unset() та поддержка любое количество параметра мы бросаем в них.

Я хочу создать подобную функцию, которая способна к принятию любого количества параметров, и обработайте их всех.

Какая-либо идея, как сделать это?

20
задан Starx 2 May 2012 в 19:20
поделиться

4 ответа

В PHP используйте функцию func_get_args , чтобы получить все переданные аргументы.

<?php
function myfunc(){
    $args = func_get_args();
    foreach ($args as $arg)
      echo $arg."/n";
}

myfunc('hello', 'world', '.');
?>

Альтернативой является передача в функцию массива переменных, чтобы вам не приходилось работать с такими вещами, как $ arg [2]; , вместо этого вы можете использовать $ args [' myvar ']; или запомните, в каком порядке передаются вещи. Его также можно бесконечно расширять, что означает, что вы можете добавлять новые переменные позже, не изменяя то, что вы уже закодировали.

<?php
function myfunc($args){
    while(list($var, $value)=each($args))
      echo $var.' '.$value."/n";
}

myfunc(array('first'=>'hello', 'second'=>'world', '.'));
?>
28
ответ дан 29 November 2019 в 23:11
поделиться

Вы можете использовать эти функции из области действия вашей функции:

  • func_get_arg ()
  • func_get_args ()
  • func_num_args ()

Некоторые примеры:

foreach (func_get_args() as $arg)
{
    // ...
}

for ($i = 0, $total = func_num_args(); $i < $total; $i++)
{
    $arg = func_get_arg($i);
}
11
ответ дан 29 November 2019 в 23:11
поделиться

Вы можете использовать func_get_args () внутри своей функции для анализа любого количества переданных параметров.

4
ответ дан 29 November 2019 в 23:11
поделиться

Для работы с этим в вашем распоряжении будут 3 функции. Сделайте объявление функции, например:

function foo()
{
    /* Code here */
}

Вы можете использовать следующие функции

func_num_args () Возвращает количество аргументов, переданных в массив

func_get_arg ($ index) Который возвращает значение аргумента по указанному индексу

func_get_args () Что возвращает массив предоставленных аргументов.

4
ответ дан 29 November 2019 в 23:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: