猿问

... 在 php 函数参数中

我正在阅读一篇关于在 laravel 中创建角色和权限的文章。我在...函数括号内看到了三个点,比如


public function hasRole(... $roles ) {

我不明白这里三个点的目的是什么...。


示例链接: https: //www.larashout.com/laravel-roles-and-permissions


/**

 * @param mixed ...$roles

 * @return bool

 */

public function hasRole(... $roles ) {

    foreach ($roles as $role) {

        if ($this->roles->contains('slug', $role)) {

            return true;

        }

    }

    return false;

}

提前致谢。


慕沐林林
浏览 109回答 1
1回答

DIEA

这是 PHP 的一个特殊的一元运算符,称为“扩展运算符”,它允许您在方法中使用可变长度参数,即该方法可以采用 0 个或多个参数作为可变长度参数。下面是一个更好理解的例子:例如<?phpfunction sum(...$numbers) {&nbsp; &nbsp; $acc = 0;&nbsp; &nbsp; foreach ($numbers as $n) {&nbsp; &nbsp; &nbsp; &nbsp; $acc += $n;&nbsp; &nbsp; }&nbsp; &nbsp; return $acc;&nbsp;}echo "\n".sum(1, 2, 3, 4);echo "\n".sum(1);echo "\n".sum();输出:1010参考:https://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list
随时随地看视频慕课网APP
我要回答