Do you know how to return a reference to a $_SESSION
variable from the eval()
function.
class SessionAccessor {
static function &getVar() {
return eval('return $_SESSION["sample"];');
}
}
Error checking aside, here is the result I want:
$sample =& SessionAccessor::getVar();
$sample = 'new value'; // sets $_SESSION['sample'] to 'new value'
If you're wondering whether or not I need to use eval()
, the answer is yes.
class SessionAccessor {
static function &getVar($str) {
$arr =& $_SESSION;
foreach(explode('/',$str) as $path){
$arr =& $arr[$path];
}
return $arr;
}
}
You just need to loop over the path you want to get from the array and keep updating a reference to it. Then return that reference.