基本上,我想做的是创建一个名为 Variables 的类,它使用会话来存储其中的所有内容,使我能够快速获取和存储需要在整个站点中使用的数据,而无需直接使用会话。
现在,我的代码如下所示:
<?php
class Variables
{
public function __construct()
{
if(session_id() === "")
{
session_start();
}
}
public function __set($name,$value)
{
$_SESSION["Variables"][$name] = $value;
}
public function __get($name)
{
return $_SESSION["Variables"][$name];
}
public function __isset($name)
{
return isset($_SESSION["Variables"][$name]);
}
}
但是,当我尝试像使用自然变量一样使用它时,例如......
$tpl = new Variables;
$tpl->test[2] = Moo;
echo($tpl->test[2]);
我最终得到“o”而不是“Moo”,因为它将测试设置为“Moo”,完全忽略了数组。我知道我可以通过做来解决它
$tpl->test = array("Test","Test","Moo");
echo($tpl->test[2]);
但我希望能够像使用自然变量一样使用它。这可能吗?