我想使用同一段代码来管理多个实体,但它可能有点不同,具体取决于它是否具有某种方法。这就是为什么我需要检查对象是否有名称的方法。有没有办法做到这一点?如何在Symfony2中检查对象是否有方法
3
A
回答
9
您可以简单地使用is_callable
:
if (is_callable([$entity, 'methodName']))
doSomething();
更简洁的方法是使用instanceof
检查对象的类。因为方法会来来去去,但是物体的性质取决于它的类别:
if ($entity instanceof \Some\Bundle\Entity\Class)
doSomething();
5
这与Symfony无关,它是基本的PHP事情:使用method_exists PHP函数。
bool method_exists (mixed $object , string $method_name)
虽然这是一个完全正常的方式去解决它,你可能想看看接口作为一种替代方案:PHP Interfaces
如果你决定使用它们,就可以只是检查的对象是你的接口的实例:
interface MyAwesomeInterface
{
public function myFunction();
}
if ($myObject instanceof MyAwesomeInterface) {
$myObject->myFunction();
}
相关问题
- 1. 如何检查对象是否支持vba中的方法?
- 2. Python:如何检查对象的属性是否是方法?
- 3. RSpec。如何检查对象方法是否被调用?
- 4. 如何检查对象是否在Domain对象的集合中?
- 5. ruby检查对象是否在数组中的方法
- 6. 在python中如何检查一个对象是否有值?
- 7. 如何检查对象是否是Cocoa中的Foundation对象?
- 8. 如何在Python中检查对象所具有的方法?
- 9. 如何检查对象是否为UIButton
- 10. 如何检查对象是否为空
- 11. 如何检查私有方法是否在ruby中定义
- 12. jQuery检查值是否在对象中
- 13. 检查对象是否在路径中
- 14. 检查对象是否存在的最快方法
- 15. 检查PowerShell对象是否存在的最佳方法?
- 16. 如何检查Ruby对象的方法?
- 17. 如何检查在JavaScript中的对象中是否存在值
- 18. 如何在C中检查对象是否是数字#
- 19. 如何检查PHP对象是否是MongoDate对象?
- 20. 如何在VB中检查对象的类型6 - 是否有任何方法,而不是'TypeName'
- 21. 检查对象是否有效?
- 22. 检查对象是否有焦点
- 23. 检查对象是否具有属性
- 24. 在Rails/Ruby中检查对象是否存在的正确方法是什么?
- 25. 如何快速检查NSString对象是否是有效的url?
- 26. 如何检查对象是否有respond_to? MyObject#attr_reader:my_property但不是setter
- 27. 如何在JavaScript中检查嵌套对象中是否存在空对象?
- 28. Mongoengine检查对象是否存在,但没有获取对象
- 29. 有没有办法检查两个对象在Java中是否是别名?
- 30. 如何检查对象是否不在mongoDb中的数组中?