我正在编写一个简单的php框架。现在我需要一种更好的方法来检查方法或属性是私有的还是公共的。目前我正在使用Reflection类,但几乎每个属性访问都需要它。
我需要魔法__get
,如果其中有公共方法$object->testProperty
,则可以拨打getTestProperty()
。
我正在寻找另一种方法(因为性能)。有没有更快的可能性?
答案 0 :(得分:1)
您可以使用is_callable
检查是否可以在对象上调用该方法:
is_callable(array($object, 'methodName'))
如果您需要检查某些属性,请使用property_exists
:
property_exists($someObject', 'userId')
最后有method_exists
:
method_exists('someClass', 'someMethod');
答案 1 :(得分:0)
还有两个有用的功能: bool method_exists(class_name_or_object,method_name) - 如果方法存在(公共,甚至保护和私有),则返回true array get_class_methods(class_name_or_object) - 返回类或对象的公共方法数组