缺少函数的 return 类型声明 - 做声明会提高效率

Missing function's return type declaration - do declarations increate efficiency

在 php class 函数中包含 return 类型声明有什么好处吗?这样更好吗:

public function team_classes(): \Illuminate\Database\Eloquent\Relations\HasMany
{
    return $this->hasMany(TeamClass::class, 'activity_id', 'id');
}

上面的比下面的好吗?

public function team_classes()
{
    return $this->hasMany(TeamClass::class, 'activity_id', 'id');
}

如果是这样,它只是为了程序员的眼睛还是提高了效率/速度?

实际上,PHP 的旧版本没有此功能,因此他们将 PHP 称为 duck taped 但在最新版本之后你有 return 类型和类型变量等。如果return 类型很重要或函数的参数类型,最好放置 return 类型。

在您的代码中,您最好放置这些 return 类型或变量类型,因为您不想将一些字符串分配给整数或类似的东西,或者在函数期望您发送数组时发送集合.作为开发人员,它将保护您不犯错误或少犯错误,老实说,它会让您在调试代码时更轻松。

你也可以这样使用:

use lluminate\Database\Eloquent\Relations\HasMany;

public function team_classes(): HasMany
{
    return $this->hasMany(TeamClass::class, 'activity_id', 'id');
}

最好使用 FQDN

添加 return 类型声明是推荐的,但不是强制性的。它为您提供高级 IDE 自动完成和类型兼容性支持。

例如,如果您的关系没有类型声明,您的 IDE 很可能不会为您提供关系方法。

您可能想要选择使用类型的另一个原因是运行时类型检查。尝试向上面的示例添加不正确的 return 类型(而不是 returning HasMany 类型使用其他任何类型)。每当您使用该方法时都会抛出异常。

至于速度:几乎不影响你的申请。你可以在网上找到 type-hinting 比较,但据我所知,差异约为 2-5 毫秒。

总体而言,这提供了更好的 IDE 支持和隐式类型声明,使开发人员的工作更轻松。