如何在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