php5.6开始 ... 替代func_get_args的实际运用

参考文献   http://php.net/manual/zh/migration56.new-features.php

场景:

     变长参数... 的大名,很早就听说了,但是没有怎么用过.。 今天在看一个laravel 权限包的时候 遇到了

      就扒一扒

用法:

     1.  正常的调用   这些参数会被当成一个数组来处理

     2.  ...调用 则数组分散成单个参数   

    function dump(...$args)
    {
        var_dump($args);
    }

//    dump(2,3,4);   [2,3,4]
//    dump(...[2,3,4]); [2,3,4]
//    dump([2,3,4]); [[2,3,4]]


解析:

      下面的例子, 很明显传入的参数的类型和个数都是不固定的  [1,2,3,4] 或者 (1,2,3,5, PermisionObject) 

       这是一个边长参数的经典运用

/**
 * Determine if the model has any of the given permissions.
 *
 * @param array ...$permissions
 *
 * @return bool
 */
public function hasAnyPermission(...$permissions): bool /* */ 
{
    if (is_array($permissions[0])) {
        $permissions = $permissions[0];
    }

    foreach ($permissions as $permission) {
        if ($this->hasPermissionTo($permission)) {
            return true;
        }
    }

    return false;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值