PHP Conference Japan 2024

SessionHandlerInterface::read

(PHP 5 >= 5.4.0, PHP 7, PHP 8)

SessionHandlerInterface::read讀取工作階段資料

說明

public SessionHandlerInterface::read(字串 $id): 字串|false

從工作階段儲存區讀取工作階段資料,並返回結果。在工作階段開始或呼叫 session_start() 後立即呼叫。請注意,在此方法被呼叫之前,會先呼叫 SessionHandlerInterface::open()

此方法由 PHP 本身在工作階段啟動時呼叫。此方法應透過提供的 session ID 從儲存區擷取工作階段資料。此方法返回的字串必須與最初傳遞給 SessionHandlerInterface::write() 的序列化格式相同。如果找不到記錄,則返回 false

此方法返回的資料將由 PHP 使用 session.serialize_handler 中指定的反序列化方法在內部解碼。產生的資料將用於填充 $_SESSION 超全域變數。

請注意,序列化機制與 unserialize() 不同,可透過 session_decode() 進行存取。

參數

id

工作階段 ID。

返回值

返回已讀取資料的編碼字串。如果未讀取任何內容,則必須返回 false。請注意,此值會在內部返回給 PHP 進行處理。

另請參閱

新增註釋

使用者貢獻的註釋 1 則註釋

匿名使用者
1 年前
如果此函式返回 false,似乎會導致在錯誤日誌中發出「session_start(): Failed to read session data: user」。這似乎也會產生連鎖效應,導致 write() 方法未被呼叫。

因此,返回 false 似乎僅用於指示錯誤狀態。要指示沒有現有的工作階段,但可以建立一個新的工作階段,返回空字串似乎是可行的方法。
To Top