官方说明

说明

func_get_args ( void ) : array
获取函数参数列表的数组。

该函数可以配合 func_get_arg() 和 func_num_args() 一起使用,从而使得用户自定义函数可以接受自定义个数的参数列表。

返回值

返回一个数组,其中每个元素都是目前用户自定义函数的参数列表的相应元素的副本。

测试:

<?php
function foo()
{
    //获得传入参数的数量
    $numargs = func_num_args();
    echo "Number of arguments: $numargs<br />\n";
    if ($numargs >= 2) {
        echo "Second argument is: " . func_get_arg(1) . "<br />\n";
    }
    //将传入参数变为数组
    $arg_list = func_get_args();
    for ($i = 0; $i < $numargs; $i++) {
        echo "Argument $i is: " . $arg_list[$i] . "<br />\n";
    }
}

foo(1, 2, 3);
?>

输出:

Number of arguments: 3<br />
Second argument is: 2<br />
Argument 0 is: 1<br />
Argument 1 is: 2<br />
Argument 2 is: 3<br />

这个函数的其中一个用途是,我可以传一个数组,或者是传很多变量分别传

function handle_imgs($img){
    $imgs = is_array($img) ? $img : func_get_args();
    foreach($imgs as $v){
        //do something
    }
}

handle_imgs('a','b');
$imgs = [
    'a',
    'b'
];
handle_imgs($imgs);
//都会输出
a,b

php 向函数传引用

当你要传递的值特别大时,使用传引用的方式 会减小内存的开销。或者当你需要改变传递参数的原值时,也可以使用此方式。 <?php /** * 测试 */ class Tes...

阅读全文

升级php7.2后,加密函数mcrypt_module_open()被废弃的解决方案。

方案1 直接输入 pecl install mcrypt-snapshot 此方案的好处是不用改代码 方案2 <?php class Encrypt{ //base64_encode(openssl_random_pseudo_bytes...

阅读全文

elasticsearch+kibana+filebeat+headPlugin配置参考

参考链接 filebat: https://www.elastic.co/cn/downloads/beats/filebeat https://www.elastic.co/cn/products/beats/filebeat Elastic Stack : https://www...

阅读全文

欢迎留言