gpt4 book ai didi

php - 设置关系时 User::class 和 App\User 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 19:20:47 24 4
gpt4 key购买 nike

return $this->belongsTo(User::class);

对比
return $this->belongsTo(App\User);

以上两种说法有什么区别?

最佳答案

实际上,您的第二个示例无效。它必须是一个字符串:

return $this->belongsTo('App\User');

假设它是一个字符串,这两种变体之间没有区别。

PHP 5.5 class resolution ( ::class ) 返回类的完全限定名称 ( {Namespace}\ClassName )。您在第一个示例中使用它。但在第二个示例中,您手动传递类 FQN ( App\User ),而不使用类解析。

重要的注意事项是该类应该在上下文中可用(如果不在当前命名空间中,则使用 use 语句),然后才能对其使用类解析。但是在第二种方法中,您不需要使类可用,只需将 FQN 作为字符串传递即可。

对于上下文中可用的长类 FQN,您更喜欢使用类解析而不是手动传递它。
use Illuminate\Database\Eloquent\Model;

echo Model::class;
// Outputs: Illuminate\Database\Eloquent\Model;

关于php - 设置关系时 User::class 和 App\User 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41406349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com