laravel - PHP函数传参 参数个数问题

查看:317
本文介绍了laravel - PHP函数传参 参数个数问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在看Laravel Facades 相关代码:

public static function __callStatic($method, $args)
    {
        $instance = static::getFacadeRoot();

        if (! $instance) {
            throw new RuntimeException('A facade root has not been set.');
        }

        return $instance->$method(...$args);
    }

最后一个 ...$args 参数写法代表不定参数个数?有什么需要注意的地方吗?
我记得之前这里的方法是用 switch 实现的:

  public static function __callStatic($method, $args)
    {
        $instance = static::getFacadeRoot();

        switch (count($args)) {
            case 0:
                return $instance->$method();

            case 1:
                return $instance->$method($args[0]);

            case 2:
                return $instance->$method($args[0], $args[1]);

            case 3:
                return $instance->$method($args[0], $args[1], $args[2]);

            case 4:
                return $instance->$method($args[0], $args[1], $args[2], $args[3]);

            default:
                return call_user_func_array([$instance, $method], $args);
        }
    }

解决方案

这里应该之前是对早期版本的php兼容而采用的写法,php中...$args这种语法只有在 php5.6+之后才有,之前的版本并不支持。

这篇关于laravel - PHP函数传参 参数个数问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆