0

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

var_dump(get_object_vars($mgm_member)); 

结果表明,这个对象有37个属性,并且都有值。比我尝试使用

var_dump($mgm_member->phone);

结果为空。我尝试了许多其他属性,但只有该对象的第一个属性具有价值。谁能帮我?非常感谢。

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

echo $mgm_member->id;

这真的很奇怪。

4

2 回答 2

0

由于该属性是“私有的”,您需要创建一个函数来访问并返回它

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

class .... {

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

}

然后:

echo $mgm_member->getPhone();
于 2012-08-07T13:42:14.950 回答
0

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

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

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

$myVar=$mgm_member->phone;

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

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

于 2012-08-07T13:22:46.427 回答