从PHP中的对象获取属性

时间:2012-08-07 13:18:51

标签: php wordpress

必须做一些PHP编码,但我完全是新手。问题是我试图从名为$ mgm_member的对象获取属性值,该对象来自wordpress插件,它记录了网站的成员信息。首先我使用:

var_dump(get_object_vars($mgm_member)); 

结果显示该对象有37个属性,并且所有属性都有值。比我尝试使用

var_dump($mgm_member->phone);

结果为null。我尝试了很多其他属性,但只有这个对象的第一个属性才有价值。谁能帮我?非常感谢你。

好吧我想如果“电话”的范围是私有的,var_dump将无法访问和查看它,是吗?在我的情况下,我可以使用var_dump()函数查看所有属性及其值,但是当我尝试获取一个属性时,它只是不起作用。但是,我可以使用相同的代码获取第一个属性“id”

echo $mgm_member->id;

这真的很奇怪。

2 个答案:

答案 0 :(得分:0)

var_dump(get_object_vars($mgm_member));显示对象变量。如果您使用这行代码获取数据,则对象中有数据。

您可以使用$mgm_member->phone访问代码中变量的属性 - 为什么不这样做?

如果要将数据放入变量,可以使用以下内容:

$myVar=$mgm_member->phone;

但这违背了OOP的目的。为什么不在代码中完全引用它$mgm_members->phone

编辑:正如您所指出的,该属性为private,这意味着只有对象本身才能使用它。你可以通过修改对象来解决这个问题,但这可能是一个讨厌的方法 - 它是私有的,有一个原因。你能否在对象中使用函数来显示值?或者,是否有一个函数可以在对象中使用,以返回具有不同属性属性的对象的克隆?

答案 1 :(得分:0)

由于该属性为“私有”,您需要创建一个访问权限并将其返回

转储可能会显示它们,但您无法直接访问“私人”属性。

class .... {

    public function getPhone()
    {
        return ($this->phone);
    }

}

然后:

echo $mgm_member->getPhone();