如何打印对象的所有属性
我在php页面中有一个未知对象。
如何打印/回显它,以便我可以看到它具有哪些属性/值?
功能呢?有没有办法知道一个对象有什么功能?
我在php页面中有一个未知对象。
如何打印/回显它,以便我可以看到它具有哪些属性/值?
功能呢?有没有办法知道一个对象有什么功能?
<?php var_dump(obj) ?>
或
<?php print_r(obj) ?>
这些也是用于数组的相同内容。
这些将显示 PHP 5 对象的受保护和私有属性。根据手册,将不会显示静态类成员。
如果你想知道成员方法,你可以使用get_class_methods():
$class_methods = get_class_methods('myclass');
// or
$class_methods = get_class_methods(new myclass());
foreach ($class_methods as $method_name)
{
echo "$method_name<br/>";
}
相关内容:
get_class() < -- 用于实例的名称
由于没有人没有提供反射API方法,所以这里就像应该完成的那样。
class Person {
public $name = 'Alex Super Tramp';
public $age = 100;
private $property = 'property';
}
$r = new ReflectionClass(new Person);
print_r($r->getProperties());
//Outputs
Array
(
[0] => ReflectionProperty Object
(
[name] => name
[class] => Person
)
[1] => ReflectionProperty Object
(
[name] => age
[class] => Person
)
[2] => ReflectionProperty Object
(
[name] => property
[class] => Person
)
)
使用反射的优点是可以按属性的可见性进行筛选,如下所示:
print_r($r->getProperties(ReflectionProperty::IS_PRIVATE));
由于 Person::$property 是私有的,因此在按IS_PRIVATE进行筛选时会返回:
//Outputs
Array
(
[0] => ReflectionProperty Object
(
[name] => property
[class] => Person
)
)
阅读文档!