Rumah > pembangunan bahagian belakang > tutorial php > 什么是php函数可变数量的参数

什么是php函数可变数量的参数

伊谢尔伦
Lepaskan: 2023-03-11 14:16:01
asal
1320 orang telah melayarinya

php在用户自定义函数中支持可变数量的参数列表。

在php5.5及更早的版本中,使用func_num_args(), func_get_arg(), func_get_args()函数实现。

<?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;));
?>
Salin selepas log masuk

输出:

1aArray(
    [0] => a
)31Array(
    [0] => 1
    [1] => 2
    [2] => 3)2Array(
    [0] => d
    [1] => e
)Array(
    [0] => Array
        (
            [0] => d
            [1] => e
        )

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

)
Salin selepas log masuk

在php5.6及以上的版本中,可以使用…语法实现。

例子1: 使用…$args代替任意数量参数

<?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;));
?>
Salin selepas log masuk

输出结果与php5.5使用func_num_args(), func_get_arg(), func_get_args()函数一致。

例子2: 数组转为参数列表

<?php
function add($a, $b){
    echo $a + $b;
}
$args = array(1, 2);

add(...$args); // 输出3
?>
Salin selepas log masuk

例子3: 部分参数指定,其他参数数量不定

<?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;));
?>
Salin selepas log masuk

输出:

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
        )

)
Salin selepas log masuk

Atas ialah kandungan terperinci 什么是php函数可变数量的参数. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan