缺少函数的 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 支持和隐式类型声明,使开发人员的工作更轻松。
在 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 支持和隐式类型声明,使开发人员的工作更轻松。