sne*_*zle 0 php arrays oop magic-methods getter-setter
我目前在PHP类示例中有以下__get/__ set方法:
class example{
/*Member variables*/
protected $a;
protected $b = array();
public function __get($name){
return $this->$name;
}
public function __set($name, $value){
$this->$name = $value;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,除了设置标准的受保护变量之外,我还希望能够在类中设置受保护的数组.我已经查看了一些其他问题,并找到了关于如何使用__get/__ set方法简单设置变量的一般建议,但没有任何允许使用这些魔术方法来设置BOTH数组和非数组的方法,即以下列方式:
$fun = new $example();
$fun->a = 'yay';
$fun->b['coolio'] = 'yay2';
Run Code Online (Sandbox Code Playgroud)
简单,定义__get()如下:
public function &__get($name)
{
return $this->$name;
}
// ...
$fun = new example();
$fun->a = 'yay';
$fun->b['coolio'] = 'yay2';
var_dump($fun);
Run Code Online (Sandbox Code Playgroud)
输出:
object(example)#1 (2) {
["a":protected]=>
string(3) "yay"
["b":protected]=>
array(1) {
["coolio"]=>
string(4) "yay2"
}
}
Run Code Online (Sandbox Code Playgroud)
在处理引用时要小心谨慎,很容易陷入困境并引入难以跟踪的错误.
| 归档时间: |
|
| 查看次数: |
1056 次 |
| 最近记录: |