如何在PHP中获取对象的受保护属性

我有一个要获取和设置一些受保护属性的对象。该对象看起来像

Fields_Form_Element_Location Object

(

[helper] => formText

[_allowEmpty:protected] => 1

[_autoInsertNotEmptyValidator:protected] => 1

[_belongsTo:protected] =>

[_description:protected] =>

[_disableLoadDefaultDecorators:protected] =>

[_errorMessages:protected] => Array

(

)

[_errors:protected] => Array

(

)

[_isErrorForced:protected] =>

[_label:protected] => Current City

[_value:protected] => 93399

[class] => field_container field_19 option_1 parent_1

)

我想获取value对象的属性。当我尝试$obj->_value$obj->value它产生错误。我搜索并找到了要使用的解决方案PHP

Reflection Class。它在我本地但在服务器上的PHP版本上工作,5.2.17因此我不能在此使用此功能。那么任何解决方案如何获得这种财产?

回答:

这就是“受保护”的含义,正如“

可见性”一章所解释的:

声明为protected的成员只能在该类内部以及继承的和父类访问。

如果需要从外部访问该属性,请选择以下一项:

  • 不要将其声明为受保护的,而是将其公开
  • 编写几个函数来获取和设置值(getter和setter)

如果您不想修改原始类(因为它是第三方库,那么您就不会搞乱),请创建一个扩展原始类的自定义类:

class MyFields_Form_Element_Location extends Fields_Form_Element_Location{

}

…然后在其中添加您的吸气剂/设置剂。

以上是 如何在PHP中获取对象的受保护属性 的全部内容, 来源链接: utcz.com/qa/431631.html

回到顶部