PHP使用数组作为名称设置魔术方法
发布时间:2020-12-13 22:02:46 所属栏目:PHP教程 来源:网络整理
导读:我正在创建一个类,我将用它来存储和加载一些设置.在课堂内,所有设置都存储在一个数组中.设置可以嵌套,因此设置数组是一个多维数组.我想使用魔术方法__get和__set存储和加载设置,因此设置可以充当类成员.但是,由于我使用的是嵌套方法,因此在尝试访问嵌套设置
我正在创建一个类,我将用它来存储和加载一些设置.在课堂内,所有设置都存储在一个数组中.设置可以嵌套,因此设置数组是一个多维数组.我想使用魔术方法__get和__set存储和加载设置,因此设置可以充当类成员.但是,由于我使用的是嵌套方法,因此在尝试访问嵌套设置时无法使__set方法起作用.
这个班是这样的: class settings { private $_settings = array(); //some functions to fill the array public function __set($name,$value) { echo 'inside the __set method'; //do some stuff } } 以及使用此类的代码: $foo = new settings(); //do some stuff with the class,so the internal settings array is as followed: //array( // somename => somevalue // bar => array ( // baz = someothervalue // qux = 42 // ) // ) $foo->somename = something; //this works,__set method is called correctly $foo->bar['baz'] = somethingelse; //Doesn't work,__set method isn't called at all 我怎样才能让最后一行工作? 解决方法
使用此方法访问数组时,它实际上会通过__get.为了在返回的数组上设置参数,需要将其作为参考返回:& __ get($name)
除非,您的意思是您希望作为数组返回的每个项目的行为方式与父对象相同,在这种情况下,您应该查看Zend Framework的 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |