【发布时间】:2015-12-31 07:07:48
【问题描述】:
如果我有以下注册表类:
Class registry
{
private $_vars;
public function __construct()
{
$this->_vars = array();
}
public function __set($key, $val)
{
$this->_vars[$key] = $val;
}
public function __get($key)
{
if (isset($this->_vars[$key]))
return $this->_vars[$key];
}
public function printAll()
{
print "<pre>".print_r($this->_vars,true)."</pre>";
}
}
$reg = new registry();
$reg->arr = array(1,2,3);
$reg->arr = array_merge($reg->arr,array(4));
$reg->printAll();
是否有更简单的方法将新项目推送到“arr”数组中? 这段代码:'array[] = item' 不适用于魔法设置方法,我在谷歌上找不到任何有用的信息。感谢您的宝贵时间!
【问题讨论】:
-
@Spoonface,你希望
_vars在两次__set()通话后看起来像什么?array("arr" => array(1,2,3,4))? -
是的,没错,它应该看起来像:_vars => array('arr' => array(1,2,3,4))。
标签: php class multidimensional-array magic-methods