用于特征的 PHP 实例
2022-08-30 14:10:15
检查一个类是否使用某种特征的正确方法是什么?
虽然没有什么可以阻止您使用方法来确定类是否使用特征,但推荐的方法是将特征与接口配对。因此,您将拥有:
class Foo implements MyInterface
{
use MyTrait;
}
其中 是 的实现。MyTrait
MyInterface
然后,您检查界面而不是这样的特征:
if ($foo instanceof MyInterface) {
...
}
你还可以键入 hint,这是你不能用特征做的:
function bar(MyInterface $foo) {
...
}
如果您绝对需要知道某个类是否正在使用某个特征或实现,则可以向接口添加另一个方法,该方法根据实现返回不同的值。
可以使用函数获取类使用的所有特征的数组。class_uses
然后,检查此数组是否具有与要测试的特征同名的密钥。
如果是这样,那么你的班级正在使用你的特质。如果没有,那么它就不使用它。