首先看乙個簡單例子
$a = 'scnjl';
function test()
test();
var_dump($a);
function test1()
test1();
var_dump($a);
這裡輸出的結果是:
string(5) "scnjl" null
可以看到其實global在函式中使用的時候,並沒有直接用到變數$a,而是複製了乙個指向$a的值的變數,所以當unset以後,全域性變數$a並沒有被unset,而$globals['a']直接代表了全域性變數$a。
這是global 和 globals的區別吧。
今天在弄乙個東西的時候發現全域性變數在class中呼叫沒有值,找了很久原因,原來是因為那個類裡面的include的乙個檔案裡面的值也不是全域性變數,因為那個檔案是被另乙個函式所include,這樣子造成類檔案裡面的include檔案的變數也是區域性變數。
例子:test008.php
include 'test009.php';
class a
function a()
function test()
function test1()
}$a = new a();
test009.php
$var = 'scnjl';
test010.php
class xx
function test()
}$xx = new xx();
$xx->test();
這個只是做個簡單列子,其實test009.php裡面的值是可以直接放到test008.php中的。
這裡輸出乙個null。
php中global與 GLOBAL的用法及區別
php中global 與 globals 差別 原本覺得global和 globals除了寫法不一樣覺得,其他都一樣,可是在實際利用中發現2者的差別還是很大的 先看下面的例子 php 例子1 function test global function test globals var1 5 var2...
php中global的作用
global var1,var2 就是函式體內針對外部變數的同名引用,變數本身的作用範圍仍然在函式體內。改變這些變數的值,外部的同名變數自然也改變。但一旦用了 那麼變數將不再是同名引用。php var1 1 var2 2 function test test echo var1 結果是 3。因為是同...
php 中global關鍵字和 GLOBALS用法
首先我們先看一段 a 1 global scope function test test 這個指令碼不會有任何輸出,因為 echo 語句引用了乙個區域性版本的變數 a 而且在這個範圍內,它並沒有被賦值。你可能注意到 php 的全域性變數和 c 語言有一點點不同,在 c 語言中,全域性變數在函式中自動...