我不理解 `: MorphToMany` 是什么意思,它在方法名称旁边是什么意思?

3

有人能向我解释一下这个吗?我在一个Laravel包中遇到了它。

public function users(): MorphToMany
{
    return $this->morphedByMany(
        getModelForGuard($this->attributes['guard_name']),
        'model',
        config('permission.table_names.model_has_permissions'),
        'permission_id',
        'model_id'
    );
}

我知道上面是一种方法,但我不理解那行代码中的 : MorphToMany 是什么意思,在一个方法名旁边出现这个是什么意思?

2
这告诉PHP期望一个返回类型为MorthToMany的返回值。 - Derek Pollard
1
这是一个返回类型声明;它表示该方法必须返回类型为MorphToMany的值,否则将抛出致命错误。这在PHP7中得到支持 - http://php.net/manual/en/functions.returning-values.php#functions.returning-values.type-declaration - Graham
http://php.net/manual/en/migration70.new-features.php#migration70.new-features.return-type-declarations - nerdlyist
我明白了,所以这将返回对象。 - Fil
1个回答

4
那是一个返回类型声明

...返回类型声明指定从函数返回的值的类型。

另一个例子:
function arraysSum(array ...$arrays): array
{
    return array_map(function(array $array): int {
        return array_sum($array);
    }, $arrays);
}

请注意,这是 PHP 7 的新功能。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接