检查类是否使用特定特征的正确方法是什么?
最佳答案
虽然没有什么可以阻止您使用带有特征的instanceof
,但是推荐的方法是将特征与接口(interface)配对。因此,您将拥有:
class Foo implements MyInterface
{
use MyTrait;
}
其中
MyTrait
是MyInterface
的实现。然后检查接口(interface),而不是像这样的特征:
if ($foo instanceof MyInterface) {
...
}
您还可以键入提示,而不能使用特征:
function bar(MyInterface $foo) {
...
}
如果您绝对需要知道某个类是否正在使用某个特征或实现,则可以向该接口(interface)添加另一个方法,该方法根据实现返回一个不同的值。
关于php - 特质的PHP instanceof,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36515677/