想知道是否有可能像做以下的(我知道如预期的代码将无法正常工作,只是试图让整个目的):__set/__获取有关阵列属性
class Form
{
private $v = array();
function __set($varName, $varValue)
{
... do some treatment on the varValue ...
$this->v[$varName] = $varValue;
}
function &__get($varName)
{
if(!isset($this->v[$varName]))
$this->v[$varName] = NULL;
return $this->v[$varName];
}
};
我想可以设置一个变量,如:
$form->Values['whatever'] = 'dirty';
,并把它通过setter函数将调用一些清洁工作,并最终真正填补了其他几个阵列像“HtmlValues”和“SqlValues”,所以我跑可以拉取编码的值我想要的格式,这样我就可以再打
echo $form->HtmlValues['whatever'];
的问题当然是正常的问题,如果你只是用_ 得到的,你最终会设置所返回的值,即使& _get通过引用和事物类型的工作返回它,即使您正在设置私有成员,__set实际上也不会被调用。
所以基本上,我想知道如果有来电。只要你设置一个数组(可能是多个阵列深,中值的函数的方式有什么不一样$form->Values['group']['item'] = 'whatever';
所需的输出会是这样的:
$form->Values['name'] = "&";
echo $form->HtmlValues['name']; = &
(只是要加强,我不是在寻找实际的编码,只需调用它,因为它的设置每个变量的能力/改变,而不必手动整个数组编码)
真棒,使我在正确的方向:) – John 2011-05-09 19:44:57