【发布时间】:2015-05-07 16:35:14
【问题描述】:
有没有办法获取实例化的标准类对象的所有方法?我说的是一个有一些方法和属性的对象,而不是一个新的 stdClass 对象。 ReflectionClass 似乎只适用于类。
【问题讨论】:
-
你的对象有类还是无类? (即一些 stdClass 突变体)
有没有办法获取实例化的标准类对象的所有方法?我说的是一个有一些方法和属性的对象,而不是一个新的 stdClass 对象。 ReflectionClass 似乎只适用于类。
【问题讨论】:
试试get_class_methods(),如果我理解正确的话,听起来就像你所描述的那样。
【讨论】:
get_object_methods()吗?
您可以使用get_object_vars 获取所有属性的列表,然后遍历它们(或array_filter 它们)并确定它们中的哪一个is_callable:
$myClass = new StdClass;
$myClass->someFunc = function($a) {
return $a - 1;
};
$myClass->someProperty = 42;
$properties = get_object_vars($myClass);
$methods = array_filter($properties, 'is_callable');
我不确定这是否是我的 5.4.39 版本的 PHP,但使用上面的示例并按照 @Mike 的建议执行 var_dump(get_class_methods($myClass)); 会返回一个空数组。
【讨论】: