php變數作用域

2021-06-02 08:54:26 字數 1226 閱讀 5746

1:在php中變數主要有:內建超級全域性變數,一般的變數,常量,全域性變數,靜態變數等。

內建超級全域性變數:可以在指令碼的任何地方使用和可見。即如果我們在乙個php頁面中改變了其中的乙個值,那麼在其他php頁面中使用時,它的值也會發生改變。

常量:一旦被宣告將可以在全域性可見,也就是說,它們可以函式內外使用,但是這僅僅限於乙個頁面之中(包含我們通過include和include_once)包含進來的php指令碼,但是在其他的頁面中就不能使用了。

在乙個指令碼中宣告的全域性變數在整個指令碼中是可見的,但不是在函式內部,在函式內部的變數如果與全域性變數名稱相同,以函式內部的變數為準。

html**  

php$a = 4;  

function sendvalue()  

sendvalue();  

//當函式被呼叫時,$a不能以引數的形式被傳遞。所以上面**不能夠正常執行  

?>

函式內部使用的變數宣告為全域性變數時,其名稱要與全域性變數的名稱一致,在這樣的情況下,我們就可以在函式中使用函式外部的全域性變數了,這樣就可以避免上一種因為函式內部的變數與外部的全域性變數名稱相同而覆蓋了外部變數這樣的情況。

在函式內部建立並宣告為靜態的變數無法在函式外部可見,但是可以在函式的多次執行過程中保持該值,最常見的情況就是在函式的遞迴執行的過程之中。

在函式內部建立的變數對函式來說是本地的,而當函式終止時,該變數也就不存在了。

超級全域性變數的完整列表如下

$gobals 所有全域性變數陣列

$_server 伺服器環境變數陣列

$_post 通過post方法傳遞給該指令碼的變數陣列

$_get 通過get方法傳遞給該指令碼的變數陣列

$_cookie cookie變數陣列

$_files 與檔案上傳相關的變數陣列

$env 環境變數陣列

$_request 所有使用者輸入的變數陣列包括$_get $_post $_cookie 所包含的輸入內容

$_session 會話變數陣列

html**  

php$a = 4;  

function sendvalue($x)  

sendvalue($a);  

//$a定義在函式外,函式定義了引數,當函式被呼叫時,$a將以引數的形式被傳遞。因此上面**能夠正常執行。   

?>

php變數作用域

學過c的人用php的時候一般會相當順手,而且感到php太方便太輕鬆。但在變數作用域這方面卻與 c有不同的地方,搞不好會相當鬱悶,就找不到錯誤所在。昨晚就與到這麼乙個問題,是全域性變數在函式中的問題。今天搜尋了一下,發現一篇相當不錯的文章,講了php中的變數作用域。是一位翻譯的 在這貼一下 變數的範圍...

php變數作用域

先引入官網的一句話 變數的範圍即它定義的上下文背景 也就是它的生效範圍 大部分的 php 變數只有乙個單獨的範圍。這個單獨的範圍跨度同樣包含了 include 和 require 引入的檔案。我理解的就是 php變數只有乙個單獨範圍就是指函式內變數的範圍單獨作用於函式內部,函式外部的變數作用域只在函...

PHP變數作用域

php變數的4個作用域 在php指令碼的任何位置都可以宣告變數,但是,宣告變數的位置會大大影響訪問變數的範圍。這個可以訪問的範圍稱為作用域scope。php變數有4種作用域 區域性變數 在函式內部宣告的變數就是區域性變數,它儲存在記憶體的棧中,所以速度很快。區域性變數很有用,因為它消除了出線意外 的...