【发布时间】:2015-02-27 14:23:46
【问题描述】:
在我的验证类中,我传递了不同的类对象,并且需要在这些类上调用一个方法。现在的问题是。如何确保该方法存在。
我应该像这样使用instanceof:
...
...
if($passedObject instanceof MyExpectedClass) {
//then call the rquired method
}
...
...
或者应该像这样选择method_exists:
...
...
if(method_exists($passedObject, 'MyExpectedMethod')) {
//then call the rquired method
}
...
...
我很困惑。哪种方法更好。
编辑
我知道如果传递的 Object 是预期类的实例,那么预期方法也将存在,因为 MyExpected 类实现了包含预期方法的我的接口。希望这将使场景更加清晰。
【问题讨论】:
-
您的编辑不会改变任何答案
-
@Alex 那么你的建议是什么?我应该使用 method_exist 还是两者兼而有之?你能发表你的意见吗?
-
我已经做到了@Ali 的回答是正确的,你应该使用
method_exists
标签: php function class-design instanceof