您想将PHP对象转换为字符串吗?
如果var_dump,print_r,var_export,序列化,json_encode或__toString都不是你所追求的,也许这可以帮助你满足您的需求。
对于 PHP 5.3 及以上版本
<?php
$v = (object) array('a' => 1, 'b' => 2, 'c' => 3);
$r = new ReflectionObject($v);
echo $r->getName() .' {' . implode(', ', array_map(
function($p) use ($v) {
$p->setAccessible(true);
return $p->getName() .': '. $p->getValue($v);
}, $r->getProperties())) .'}';
将输出:
stdClass {a: 1, b: 2, c: 3}
对于与以前的 PHP 5 版本兼容的更传统的方法,请尝试
<?php
class ExampleClass {
private $pvt = 'private';
protected $prot = 'protected';
public $pub = 'public';
}
$v = new ExampleClass();
$r = new ReflectionObject($v);
echo $r->getName() ." {\n";
foreach ($r->getProperties() as $p)
if ($p->isPublic())
echo "\tpublic ".$p->getName().': '.$p->getValue($v)."\n";
else
echo "\t".($p->isPrivate()?'private ':'protected ').$p->getName().",\n";
echo "}\n";
这将打印:
ExampleClass {
private pvt,
protected prot,
public pub: public
}