我有一个要获取和设置一些受保护属性的对象。该对象看起来像
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因此我不能在此使用此功能。那么任何解决方案如何获得这种财产?
value
$obj->_value
$obj->value
PHP Reflection Class
5.2.17
这就是“受保护”的含义,正如“ 可见性”一章所解释的:
声明为protected的成员只能在该类内部以及继承的和父类访问。
如果需要从外部访问该属性,请选择以下一项:
如果您不想修改原始类(因为它是第三方库,那么您就不会搞乱),请创建一个扩展原始类的自定义类:
class MyFields_Form_Element_Location extends Fields_Form_Element_Location{ }
…然后在其中添加您的吸气剂/设置剂。