全域性變數通常使用關鍵字 global 來宣告,全域性變數訪問的第乙個辦法:
<?php$a=
1;$b=
2;function
sum(
)sum()
;echo
$b;
結果輸出 3。在函式中宣告了全域性變數 a 和a和b 之後,對任一變數的所有引用都會指向其全域性版本。對於乙個函式能夠宣告的全域性變數的最大個數,php 沒有限制。
在全域性範圍內訪問變數的第二個辦法,是用特殊的 php 自定義 $globals 陣列。前面的例子可以寫成:
<?php$a=
1;$b=
2;function
sum(
)sum()
;echo
$b;
結果輸出為:3
靜態變數僅在區域性函式域中存在,但當程式執行離開此作用域時,其值並不丟失。
<?php
function
test()
test()
;test()
;
輸出結果為:0 1
乙個變數的變數名可以動態的設定和使用,例如:
<?php$a=
'hello'
;$$a
='world'
;var_dump($a
,$hello
);
結果輸出為:
string(5
)"hello"
string(5
)"world"
如果存在多個可變變數,則會按變數被定義的時間順序依次從後往前取值迴圈:
<?php
//you can even add more dollar signs
$bar
="a"
;$foo
="bar"
;$world
="foo"
;$hello
="world";$a
="hello";$a
;//returns hello
$$a;
//returns world
$$$a
;//returns foo
$$$$a
;//returns bar
$$$$$a
;//returns a
$$$$$$a
;//returns hello
$$$$$$$a
;//returns world
//... and so on ...//
?>
全域性變數與靜態變數
1.全域性變數 作用域為定義處到檔案末尾,但是在程式開始就占用記憶體了。include include 這樣是可以的 extern int g int k 10 int main int g 10 include include 這樣也是可以的,但是沒必要。int g 10 extern int g...
matlab中的靜態變數與全域性變數
在matlab中,和其他語言一樣,函式中的變數一把都是區域性變數,也就是說,在函式呼叫完畢後,變數就會被釋放。但是有些時候回希望上次改變的變數在下一次呼叫時也能發揮作用。這時候就要永達靜態變數。關鍵字 persistent 用例 function rndnum rnd x produce rando...
全域性變數與全域性靜態變數的區別
全域性變數與全域性靜態變數的區別 a 若程式由乙個原始檔構成時,全域性變數與全域性靜態變數沒有區別。b 若程式由多個原始檔構成時,全域性變數與全域性靜態變數不同 全域性靜態變數使得該變數成為定義該變數的原始檔所獨享,即 全域性靜態變數對組成該程式的其它原始檔是無效的。c 具有外部鏈結的靜態 可以在所...