class example
{
public $one;
public $two;
public $object;
public function __construct()
{
$this->object = new MyObject();
}
}
但是
$example = new example();
var_dump(get_object_vars($example)); // returns $one,$two,$object
如何获取非对象的所有属性?
更新:
对于那些投票的人,我的意思是递归!
如何递归获取example
和MyObject
的所有属性?我的目的是编写一个代码来查找两个PHP对象之间的区别。
答案 0 :(得分:1)
$properties = array_keys(array_filter(get_object_vars($example), function($element) {
return !is_object($element);
}));
AND递归算法
function getMyObjectVars($obj) {
$properties = array();
foreach (get_object_vars($obj) as $k => $v) {
if (is_object($v)) {
$properties = array_merge($properties, getMyObjectVars($v));
} else {
$properties[] = $k;
}
}
return $properties;
}
print_r(getMyObjectVars($example));
答案 1 :(得分:0)
foreach(get_object_vars($example) as $prop){
if(!is_object($prop)){
echo $prop;
}
}
答案 2 :(得分:0)
$props = get_object_vars($example);
$nonObjProps = array();
foreach($props as $prop)
{
if (is_object($prop))
{
continue;
}
$nonObjProps = $prop;
}