我在php页面中有一个未知对象。
如何打印/回显它,所以我可以看到它具有哪些属性/值?
功能怎么样?有没有办法知道对象有什么功能?
答案 0 :(得分:77)
<?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()&lt; - 表示实例的名称
答案 1 :(得分:10)
由于没有人提供OO方法,所以就像这样做。
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
)
)
阅读文档!
答案 2 :(得分:5)
var_dump($obj);
如果您想了解更多信息,可以使用ReflectionClass:
答案 3 :(得分:4)
答案 4 :(得分:2)
尝试使用Pretty Dump它对我很有用
答案 5 :(得分:1)
了解对象属性var_dump(object)是最好的方法。它将显示与之关联的所有公共,私有和受保护属性,而不知道类名。
但是在方法的情况下,你需要知道类名,否则我认为很难得到对象的所有相关方法。
答案 6 :(得分:-1)
<?php
echo "<textarea name='mydata'>\n";
echo htmlspecialchars($data)."\n";
echo "</textarea>";
?>