總結本文就介紹了關於變數的基礎內容。
$name1
='php'
;$name2=&
$name1
;//name2引用了name1
$name2
='this is '
.$name2
;//改變name2的值,同時會改變name1的值。
echo
$name2."
";//輸出 this is php;
echo
$name1
;//輸出 this is php;
php依賴於執行的伺服器的版本和設定,及其它因素,提供的一些已經定義及賦值的變數。這些變數將所有的外部變數表示成內建環境變數,並且將錯誤資訊表示成返回頭。
超全域性變數是在全部作用域中始終可用的內建變數。在函式或方法中無需執行 global $var; 就可以訪問它們。
超全域性變數包括:$globals、$_server、$_get、$_post、$_request、$_cookie、$_session、$_files、$_env。
引用全域性作用域中可用的全部變數。乙個包含了全部變數的全域性組合陣列。變數的名字就是陣列的鍵。
function
getname()
$name
='php'
;getname()
;
注:global和$globals的區別
$globals[『var』]是外部的全域性變數本身,而global $var是外部$var的同名引用或者指標,也就是說global在函式產生乙個指向函式外部變數的別名變數,而不是真正的函式外部變數,而$globals確確實實呼叫的是外部的變數,函式內外會始終保持一致。
$var=1
;function
test()
test()
;echo
$var
;//空值
$var1=1
;function
test1()
test1()
;echo
$var1
;//輸出1
伺服器和執行環境資訊。由 web 伺服器建立的,提供伺服器或者執行環境的資訊,比如請求頭、路徑、指令碼位置等。以下是列取一部分陣列。
http get 變數。通過 url 引數(又叫 query string)傳遞給當前指令碼的變數的陣列。
從帶有 get 方法的表單傳送的資訊,對任何人都是可見的(會顯示在瀏覽器的位址列),並且對傳送資訊的量也有限制。http get 方法不適合大型的變數值。get方式提交資料的大小,http協議並沒有硬性限制;而是與瀏覽器及伺服器、作業系統有關。
post和get的區別
請求方式的區別:get請求,請求的資料會附加在url之後,以?分割url和傳輸資料,多個引數用&連線。url的編碼格式採用的是ascii編碼,而不是uniclde,即是說所有的非ascii字元都要編碼之後再傳輸。post請求會把請求的資料放置在http請求包的包體中。get請求的資料會暴露在位址列中,而post請求則不會。
傳輸資料的大小:在http規範中,沒有對url的長度和傳輸的資料大小進行限制。但是特定的瀏覽器和伺服器對url的長度有限制。因此,在使用get請求時,傳輸資料會受到url長度的限制。post請求引數受伺服器配置控制。
安全性:post的安全性比get的高。通過get請求,請求引數會暴露在url上,get請求提交的資料還可能會造成cross-site request frogery攻擊。
http 檔案上傳變數。此陣列包含有所有上傳的檔案資訊,如果單檔案,該陣列為二維陣列。如果是多檔案上傳的話,該陣列為三維陣列。
$_files[『userfile』][『name』]客戶端機器檔案的原名稱。
$_files[『userfile』][『type』]檔案的 mime 型別。
$_files[『userfile』][『size』]已上傳檔案的大小,單位為位元組。
$_files[『userfile』][『tmp_name』]檔案被上傳後在服務端儲存的臨時檔名。
$_files[『userfile』][『error』]和該檔案上傳相關的錯誤**。
http request 變數。預設情況下包含了$_get、$_post、$_cookie的陣列。php.ini中的request_order會影響 $_request 的內容。
session 變數。由於http協議是無狀態的協議,所以服務端需要記錄使用者的狀態時,就需要用某種機制來識具體的使用者,這個機制就是session。在服務端儲存session的方法很多,記憶體、資料庫、檔案都有。集群的時候也要考慮session的轉移,在大型的**,一般會有專門的session伺服器集群,用來儲存使用者會話,這個時候session 資訊都是放在記憶體的,使用一些快取服務比如memcached之類的來放 session。
每次http請求的時候,客戶端都會傳送相應的cookie資訊到服務端。實際上大多數的應用都是用 cookie 來實現session跟蹤的,第一次建立session的時候,服務端會在http協議中告訴客戶端,需要在 cookie裡面記錄乙個session id,以後每次請求把這個會話id傳送到伺服器,我就知道你是誰了。
session 的工作機制是:為每個訪客建立乙個唯一的 id (uid),並基於這個 uid 來儲存變數。uid 儲存在 cookie 中,或者通過 url 進行傳導。
cookie 變數。cookie 常用於識別使用者。cookie 是一種伺服器留在使用者計算機上的小檔案。每當同一臺計算機通過瀏覽器請求頁面時,這台計算機將會傳送 cookie。
cookie和session的區別
伺服器端環境變數。通過環境方式傳遞給當前指令碼的變數的陣列。這些變數被從 php 解析器的執行環境匯入到 php 的全域性命名空間。很多是由支援 php 執行的 shell 提供的,並且不同的系統很可能執行著不同種類的 shell。不同的系統$_env有可能不同。php.ini的variables_order變數可以設定$_env開關。
以上就是今天要講的內容,本文主要介紹了php變數。
php 全域性變數 預定義變數
1 globals 引用全域性作用域中可用的全部變數 2 server server addr 返回執行指令碼所在伺服器的ip位址 3 server server name 返回執行指令碼所在伺服器的主機名稱 4 server server port 返回執行指令碼所在伺服器使用的埠號 5 serv...
PHP 預定義超全域性變數
全域性變數,指變數在整個指令碼的作用範圍內,叫全域性是因為該變數在整個作用域。作用域是指程式執行時,程序沒有結束或死掉。php發給apache apache會根據這個請求,建立乙個程序為這個請求服務,這個程序就是乙個作用域。超全域性變數,指在全域性變數的基礎上,無需宣告,直接使用。可以自己往超全域性...
PHP 預定義變數,PHP 超全域性變數
php 提供了大量的預定義變數。由於許多變數依賴於執行的伺服器的版本和設定,及其它因素,所以並沒有詳細的說明文件。一些預定義變數在 php 以命令列形式執行時並不生效。有關這些變數的詳細列表,請參閱預定義變數一章。注意 php 4.2.0 以及後續版本中,php 指令 register global...