2012-08-07 175 views
0

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

var_dump(get_object_vars($mgm_member)); 

结果表明这个obeject有37个属性,它们都有值。比我尝试使用

var_dump($mgm_member->phone); 

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

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

echo $mgm_member->id; 

这真的很奇怪。

+1

我们看一些输出。 – Prasanth 2012-08-07 13:20:19

+0

'手机'的范围是什么,如果它旁边有'私人'一词,你将需要一些功能来访问它。 – Brian 2012-08-07 13:20:48

+0

首先,只要执行'var_dump($ mgm_member);',不要通过'get_object_vars()'运行它,因为它会将它变成一个数组(所以你的var_dump不会有帮助)。 – Crontab 2012-08-07 13:21:23

回答

0

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

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

如果您希望将数据放入一个变量,你可以使用这样的事情:

$myVar=$mgm_member->phone; 

但违背了OOP的目的。为什么不把它作为完全通过你的代码$mgm_members->phone

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

+0

我一定要使用mgm_members- $>手机一路走过我的代码,但回声$ mgm_members->电话显示什么,而我可以看到使用的var_dump($ mgm_member)的值,只有mgm_members- $> ID作品。 – simoncat 2012-08-07 13:41:26

+0

因为我们公司实际上买了这个插件,而且我唯一知道的是我可以通过调用这个对象来获得所有必需的信息。因此,我认为最好的方法是联系他们的客户服务人员寻求帮助,或者我需要自己查找文件。无论如何,谢谢你回答我的问题。 – simoncat 2012-08-07 13:55:19

0

由于该物业是'私人',您将需要作出访问并返回它的功能

转储可能会显示他们,但是你将不能够直接访问“私人”性质。

class .... { 

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

} 

则:

echo $mgm_member->getPhone();