php語言

當前位置 /首頁/計算機/php語言/列表

PHP語言中Session的概念

  什麼是Session呢?

PHP語言中Session的概念

Session直接翻譯成中文比較困難,一般都譯成時域。在計算機專業術語中,Session是指一個終端使用者與互動系統進行通訊的時間間隔,通常指從註冊進入系統到登出退出系統之間所經過的時間。具體到Web中的Session指的就是使用者在瀏覽某個網站時,從進入網站到瀏覽器關閉所經過的這段時間,也就是使用者瀏覽這個網站所花費的時間。因此從上述的定義中我們可以看到,Session實際上是一個特定的時間概念。

需要注意的是,一個Session的概念需要包括特定的客戶端,特定的'伺服器端以及不中斷的操作時間。A使用者和C伺服器建立連線時所處的Session同B使用者和C伺服器中建立連線時所處的Sessions是兩個不同的Session。

  那什麼是Session的解決方案呢?

我們知道,使用者訪問一個網站時往往需要瀏覽許多網頁。對於一個通過PHP構築的網站來說,使用者在訪問的過程中需要執行許多的PHP指令碼。然而由於HTTP協議自身的特點,使用者每執行一個PHP指令碼都需要和Web伺服器重新建立連線。又由於無狀態記憶的特點,此次連線無法得到上次連線的狀態。這樣,使用者在一個PHP指令碼中對一個變數進行了賦值操作,而在另外一個PHP指令碼中卻無法得到這個變數的值。例如,使用者在負責登入的PHP指令碼中設定了$user="wind",卻無法在另一個PHP指令碼中通過呼叫$user來獲得“wind”這個值。也就是說,在PHP中無法設定全域性變數。每個PHP指令碼中所定義的變數都是隻在這個指令碼內有效的區域性變數。

Session解決方案,就是要提供在PHP指令碼中定義全域性變數的方法,使得這個全域性變數在同一個Session中對於所有的PHP指令碼都有效。上面我們提到了,Session不是一個簡單的時間概念,一個Session中還包括了特定的使用者和伺服器。因此更詳細地講,在一個Session定義的全域性變數的作用範圍,是指這個Session所對應的使用者所訪問的所有PHP。

例如A使用者通過Session定義了一個全域性變數$user=“wind”中,而B使用者通過Session定義的全域性變數$user=“jane”。那麼在A使用者所訪問的PHP指令碼中,$user的值就是wind。

TAG標籤:語言 PHP Session #