В PHP существуют функции как unset()
та поддержка любое количество параметра мы бросаем в них.
Я хочу создать подобную функцию, которая способна к принятию любого количества параметров, и обработайте их всех.
Какая-либо идея, как сделать это?
В 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', '.'));
?>
Вы можете использовать эти функции из области действия вашей функции:
Некоторые примеры:
foreach (func_get_args() as $arg)
{
// ...
}
for ($i = 0, $total = func_num_args(); $i < $total; $i++)
{
$arg = func_get_arg($i);
}
Вы можете использовать func_get_args () внутри своей функции для анализа любого количества переданных параметров.
Для работы с этим в вашем распоряжении будут 3 функции. Сделайте объявление функции, например:
function foo()
{
/* Code here */
}
func_num_args () Возвращает количество аргументов, переданных в массив
func_get_arg ($ index) Который возвращает значение аргумента по указанному индексу
func_get_args () Что возвращает массив предоставленных аргументов.