必须做一些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;
这真的很奇怪。
由于该属性是"私有的",因此您需要创建一个函数来访问并返回它。
转储可能会显示它们,但您将无法直接访问"私有"属性。
class .... {
public function getPhone()
{
return ($this->phone);
}
}
然后:
echo $mgm_member->getPhone();
var_dump(get_object_vars($mgm_member));
显示对象变量。如果您使用这行代码获取数据,则对象中有数据。
您可以使用$mgm_member->phone
访问代码中变量的属性 - 为什么不这样做呢?
如果要将数据放入变量中,可以使用如下所示的内容:
$myVar=$mgm_member->phone;
但这违背了OOP的目的。为什么不在整个代码中将其完全称为$mgm_members->phone
呢?
编辑:正如您所指出的,该属性是private
的,这意味着只有对象本身可以使用它。您可以通过修改对象来解决此问题,但这可能是一种令人讨厌的方法 - 它是私有的,这是有原因的。您不能使用对象中的函数来显示值吗?或者,是否可以在对象中使用函数来返回具有不同属性属性的对象的克隆?