我正在尝试将新变量设置为受保护对象'数据'在JRegistry对象中(在$ _SESSION变量中):
["registry"]=> object(JRegistry)#22 (1) {
["data":protected]=> object(stdClass)#23 (3) {
["users"]=> object(stdClass)#24 (1) {
…
}
// here is my new variable supposed to be
}
}
我尝试使用
JRegistry::set($_SESSION['__default']['registry']->data, $test);
和
JRegistry::setValue($_SESSION['__default']['registry']->data, $test);
,
但两种方式都会引发错误消息"无法访问受保护的属性JRegistry :: $ data"。 有没有办法写INTO这个受保护的变量?
答案 0 :(得分:1)
您错误地使用了JRegistry
次调用,未传递全局变量$ _SESSION。
set()
和setValue()
来电的签名是:
public function set($path, $value)
和
public function setValue($path, $value)
N.B。 请注意,我们已弃用setValue()
。
获得JRegistry
对象后,您可以通过传递$path
属性(例如,注册表路径,例如'joomla.content.showauthor')和值来设置值。 / p>