Home >Backend Development >PHP Tutorial >php function takes variable number of parameters

php function takes variable number of parameters

不言
不言Original
2018-04-16 14:18:541371browse

This article mainly introduces the use of variable number of parameters in PHP functions, which has certain reference value. Now I share it with you. Friends in need can refer to it


php supports a variable number of parameter lists in user-defined functions.

In php5.5 and earlier versions, use the func_num_args(), func_get_arg(), func_get_args() function implementation.

<?php

function myfunc(){

    // 获取参数数量
    echo func_num_args().PHP_EOL;

    // 获取第一个参数的值:
    print_r(func_get_arg(0));
    echo PHP_EOL;

    // 获取所有参数的值
    print_r(func_get_args());
    echo PHP_EOL;

}

myfunc(&#39;a&#39;);
myfunc(1, 2, 3);
myfunc(array(&#39;d&#39;,&#39;e&#39;), array(&#39;f&#39;));

?>


Output:

1
a
Array
(
    [0] => a
)

3
1
Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)

2
Array
(
    [0] => d
    [1] => e
)

Array
(
    [0] => Array
        (
            [0] => d
            [1] => e
        )

    [1] => Array
        (
            [0] => f
        )

)



In php5.6 and above, you can use the ... syntax.

<br/>
<?php

function myfunc(...$args){

    // 获取参数数量
    echo count($args).PHP_EOL;

    // 获取第一个参数的值:
    print_r($args[0]);
    echo PHP_EOL;

    // 获取所有参数的值
    print_r($args);
    echo PHP_EOL;

}

myfunc(&#39;a&#39;);
myfunc(1, 2, 3);
myfunc(array(&#39;d&#39;,&#39;e&#39;), array(&#39;f&#39;));

?>




##Example 1: Use...$args to replace any number of arguments


The output results are consistent with the func_num_args(), func_get_arg(), func_get_args() functions used in php5.5.

<?php

function add($a, $b){
    echo $a + $b;
}

$args = array(1, 2);

add(...$args); // 输出3

?>



Example 2: Convert array to parameter list

<br/>
<?php

function display($name, $tag, ...$args){
    echo &#39;name:&#39;.$name.PHP_EOL;
    echo &#39;tag:&#39;.$tag.PHP_EOL;
    echo &#39;args:&#39;.PHP_EOL;
    print_r($args);
    echo PHP_EOL;
}

display(&#39;fdipzone&#39;, &#39;programmer&#39;);
display(&#39;terry&#39;, &#39;designer&#39;, 1, 2);
display(&#39;aoao&#39;, &#39;tester&#39;, array(&#39;a&#39;,&#39;b&#39;), array(&#39;c&#39;), array(&#39;d&#39;));

?>



Example 3: Some parameters are specified, and the number of other parameters is variable

Output:

name:fdipzone
tag:programmer
args:
Array
(
)

name:terry
tag:designer
args:
Array
(
    [0] => 1
    [1] => 2
)

name:aoao
tag:tester
args:
Array
(
    [0] => Array
        (
            [0] => a
            [1] => b
        )

    [1] => Array
        (
            [0] => c
        )

    [2] => Array
        (
            [0] => d
        )

)

Related recommendations:

Normal transfer of php function What is the difference between passing by value and reference?

How to use static variables in PHP functions

The above is the detailed content of php function takes variable number of parameters. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn