Если PHP не имеет статуса, тогда даже если вы объявляете переменные как статические, они не сохраняют свои значения в разных прогонах. Так что бессмысленно пытаться контролировать свои сеансы с помощью класса, такого как ниже, поскольку сеансы поддерживают состояние во всех сценариях, но PHP-код пользователя этого не делает.
class session { protected static $ses_id =""; public static function start() { self::$ses_id = session_start(); } public static function is_start() { return self::$ses_id; } public static function finish() { self::$ses_id = 0; $_SESSION=array(); if (session_id() != "" || isset($_COOKIE[session_name()])) { setcookie(session_name(), '', time()-2592000, '/'); } session_destroy(); } }
Ваш класс, как вы его написали, не добавляет никаких новых функций, он просто обертывает существующие функции (предоставляемые функциями session_*
). Это может быть полезно, если вам нужно посредничать или контролировать доступ к сеансу. Только вы можете судить, стоит ли это в вашем собственном приложении.
Из документации :
session_start () создает сеанс или возобновляет текущий на основе идентификатора сеанса, переданного через запрос GET или POST, или передается через файл cookie
Это означает, что вы можете возобновить сеанс, а $ses_id
останется прежним, а сеанс действителен и если он не был уничтожен.
Обертка его в классе может быть хорошим способом инкапсуляции функциональности сеанса и доступа к ней в режиме ООП. Вы также можете расширить класс, чтобы сделать простой способ сохранить соответствующие данные сеанса, которые затем доступны в вашем приложении более разумным образом, чем использование предоставленных функций session_ *.