在PHP中使用__set访问器函数我可以设置标量的值,但不能设置数组的元素.即:
$p->scalavar = "Hello"; // This works fine
$p->myarray['title'] = "Hello"; //This does not work
Run Code Online (Sandbox Code Playgroud)
我的访问者如下:
function __set($mbr_name, $mbr_value) {
$this->$mbr_name = $mbr_value;
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
$p->myarray['title'] = "Hello";
Run Code Online (Sandbox Code Playgroud)
这不称为__set魔法; 你没有完全设置属性,你正在改变它的一部分.在这种情况下,如果存在这样的魔术方法,PHP将调用该__get方法来检索存储在属性中的数组$p->myarray.请注意,要更改返回的值以对属性产生任何影响,您必须通过引用返回:
function &__get($mbr_name) {
return $this->$mbr_name;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
835 次 |
| 最近记录: |