对于PHP参数操作函数的一些浅见

PHP 内置操作函数

fun_num_args() 返回的是参数数量
fun_get_args() 返回的是一个索引array,值是每个参数的值
fun_get_arg(int $arg_num) 参数是原方法参数的下标(从0开始) 返回的某个参数的值

example

public function version($version, $second, $third = null)
{
    if (func_num_args() == 2) {
        list($version, $callback, $attributes) = array_merge(func_get_args(), [[]]);
    } else {
        list($version, $attributes, $callback) = func_get_args();
    }

    $attributes = array_merge($attributes, ['version' => $version]);

    $this->group($attributes, $callback);
}

总结

从上面的例子可以看出,这个方法传的其实是不定参数,调用者可以传一个参数+一个回调,也可以传一个一个参数+一个可选参数+一个回调,通过下面的if else处理后都能正确的调用group方法

2016-12-13 23:20 56
Comments
Write a Comment