PHP變數定義及常見預定義全域性變數

2021-10-25 05:52:35 字數 3018 閱讀 1045

總結本文就介紹了關於變數的基礎內容。

$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...