PHP變數作用域

2021-07-09 12:59:40 字數 1113 閱讀 5288

php變數的4個作用域

在php指令碼的任何位置都可以宣告變數,但是,宣告變數的位置會大大影響訪問變數的範圍。這個可以訪問的範圍稱為作用域scope。

php變數有4種作用域:

區域性變數

在函式內部宣告的變數就是區域性變數,它儲存在記憶體的棧中,所以速度很快。

區域性變數很有用,因為它消除了出線意外***的可能性。

函式引數

引數可以按值傳遞,也可以按引用傳遞。

任何接受引數的函式都必須在函式首部中宣告這些引數。

全域性變數

與區域性變數相反,全域性變數可以在程式的任何地方訪問。

只要在變數前面加上關鍵字global,就可以將其識別為全域性變數。

view plain

copy to clipboard

print?

<?php   

$var = 15;  

function add()   

add();  

?>  

如果省略global $var;這行**,變數$var的值在程式執行後的值為1,因為$var在函式add()中被認為是乙個區域性變數。這個區域性宣告將隱含地設定為0,然後是1,最後顯示的值就是1。

靜態變數

函式引數在函式退出時會撤消,而靜態變數則不同,靜態變數在函式退出時不會丟失值,並且再次呼叫此函式時還能保留這個值。

在變數名前加上關鍵字static就可以宣告乙個靜態變數:

view plain

copy to clipboard

print?

<?php   

function keep_track()   

keep_track();  

keep_track();  

keep_track();  

?>  

如果變數$count未指明為static,就是說,$count就會成為乙個區域性變數,輸出將會是「1 1 1」。

但是,因為$count是靜態的,它會在每次執行函式時保留前面的值,所以輸出為「1 2 3」

靜態作用域對遞迴函式很有用。

php變數作用域

1 在php中變數主要有 內建超級全域性變數,一般的變數,常量,全域性變數,靜態變數等。內建超級全域性變數 可以在指令碼的任何地方使用和可見。即如果我們在乙個php頁面中改變了其中的乙個值,那麼在其他php頁面中使用時,它的值也會發生改變。常量 一旦被宣告將可以在全域性可見,也就是說,它們可以函式內...

php變數作用域

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

php變數作用域

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