PHP中的全域性變數 靜態變數與可變變數

2021-10-02 16:38:24 字數 1507 閱讀 1743

全域性變數通常使用關鍵字 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 具有外部鏈結的靜態 可以在所...