Я использую магический класс getter / setter для своих переменных сеанса, но я не вижу никакой разницы между обычными setter и getter.
код:
class session
{
public function __set($name, $value)
{
$_SESSION[$name] = $value;
}
public function __unset($name)
{
unset($_SESSION[$name]);
}
public function __get($name)
{
if(isset($_SESSION[$name]))
{
return $_SESSION[$name];
}
}
}
Теперь первое, что я заметил, это то, что мне нужно вызвать $session->_unset('var_name')
, чтобы удалить переменную, в этом нет ничего «волшебного».
Во-вторых, когда я пытаюсь использовать $session->some_var
, это не работает. Я могу получить только переменную сеанса, используя $_SESSION['some_var']
.
Я посмотрел руководство по PHP, но функции выглядят так же, как мои.
Я что-то не так делаю или в этих функциях нет ничего волшебного.