Сессии и состояние

Если 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_ *.