在php中,session_start()的意思為“開始會話”,是一個用於創建新會話或重用現有會話的內建函數;語法為“session_start($array);”,成功開始會話回傳true,反之回傳false。
本教學操作環境:windows7系統、PHP7.1版、DELL G3電腦
在php中,session_start()的意思為「開始會話」。
語法:
session_start(array $options = array()): bool
session_start()函數會建立新會話或重複使用現有會話。如果透過 GET 或 POST 方式,或使用 cookie 提交了會話 ID, 則會重複使用現有會話。
參數:
$options
:此參數是關聯數組,如果提供,那麼就會用其中的項目覆寫 會話配置指示 中的配置項目。此陣列中的鍵無需包含 session. 前綴。
除了一般的會話設定指示項, 也可以在此陣列中包含 read_and_close 選項。如果將此選項的值設為 true, 那麼會話檔案會在讀取完畢之後馬上關閉, 因此,可以在會話資料沒有變動的時候,避免不必要的檔案鎖定。
當會話自動開始或透過 session_start() 手動開始的時候, PHP 內部會呼叫會話管理器的 open 和 read 回呼函數。會話管理器可能是 PHP 預設的, 也可能是擴充功能提供的(SQLite 或 Memcached 擴充功能), 也可能是透過 session_set_save_handler() 設定的使用者自訂會話管理器。透過 read 回呼函數傳回的現有會話資料(使用特殊的序列化格式儲存), PHP 會自動反序列化資料並且填入 $_SESSION 超級全域變數。
若要使用命名會話,請在呼叫 session_start() 函數 之前呼叫 session_name() 函數。
如果啟用了 session.use_trans_sid 選項, session_start() 函數會註冊一個內部輸出管理器, 此輸出管理器完成 URL 重寫的工作。
如果使用者合併使用 ob_start() 和 ob_gzhandler 函數,則函數的呼叫順序會影響輸出結果。例如,必須在開始會話之前呼叫 ob_gzhandler 函數完成註冊。
回傳值:成功開始會話回傳 true ,反而回傳 false。
範例1:
<?php // page1.php session_start(); echo 'Welcome to page #1'; $_SESSION['favcolor'] = 'green'; $_SESSION['animal'] = 'cat'; $_SESSION['time'] = time(); // 如果使用 cookie 方式传送会话 ID echo '<br /><a href="page2.php">page 2</a>'; // 如果不是使用 cookie 方式传送会话 ID,则使用 URL 改写的方式传送会话 ID echo '<br /><a href="page2.php?' . SID . '">page 2</a>'; ?>
請求 page1.php 頁面之後, 第二頁 page2.php 會包含會話資料。請參閱 會話參考 以取得更多關於 會話 ID 傳送的信息, 在該參考頁中有關於常數 SID 的詳細說明。
範例2:覆寫 Cookie 逾時時間設定
<?php // 设置 cookie 的有效时间为 1 天 session_start([ 'cookie_lifetime' => 86400, ]); ?>
推薦學習:《PHP影片教學》
以上是php中session_start()是什麼意思的詳細內容。更多資訊請關注PHP中文網其他相關文章!