yii2打開session use yii\web\Session; $session = Yii::$app->session; // check if a session is already open if ($session->isActive) ... // open a session $session->open(); // close a session $session->close(); // destroys all data registered to a session. $session->destroy(); 設置session $session = Yii::$app->session; $session->set('user_id', '1234'); //OR $session['user_id'] = '1234'; //OR $_SESSION['user_id'] = '1234'; 讀取session $session = Yii::$app->session; $user_id = $session->get('user_id'); //OR $user_id = $session['user_id']; //OR $user_id = isset($_SESSION['user_id']) ? $_SESSION['user_id'] : null; 銷燬session $session = Yii::$app->session; $session->remove('user_id'); //OR unset($session['user_id']); //OR unset($_SESSION['user_id']); 數組session的讀取與設置 $session = Yii::$app->session; $session['user'] = [ 'id' => 1, 'username' => 'yiiuser', ]; echo $session['user']['id']; echo $session['user']['username']; $session['user.id'] = 1; $session['user.username'] = 'yiiuser'; 官網上的用法 首先,在Yii框架中,你不須要像標準PHP代碼那樣使用session_start(), 在 Yii 框架中,autoStart 屬性缺省被設置爲true,因此, 雖然沒有使用 session_start(),你仍然能夠使用 $_SESSION 全局變量,但最好使用 Yii框架封裝的 Yii::app->session: 設置session變量:Yii::app()->session['var']='value'; 使用: echo Yii::app()->session['var']; 移除:unset(Yii::app()->session['var']); 更爲複雜一點的使用時如何配置你的session 配置項可設在 protected/config/main.php的components中: 'session'=>array( 'autoStart'=>false(/true), 'sessionName'=>'Site Access', 'cookieMode'=>'only', 'savePath'='/path/to/new/directory', ), 將session保持在數據庫的設置: 'session' => array ( 'class' => 'system.web.CDbHttpSession', 'connectionID' => 'db', 'sessionTableName' => 'actual_table_name', ), 好,還有什麼呢?對了,爲了調試,有時須要知道當前用戶的session ID, 該值就在 Yii::app()->session->sessionID 中。 最後,當用戶退出登陸(logout),你須要消除痕跡,可以使用: Yii::app()->session->clear() 移去全部session變量,而後,調用 Yii::app()->session->destroy() 移去存儲在服務器端的數據。