php中的global及GLOBALS的一些問題

2021-08-31 08:03:56 字數 927 閱讀 8794

首先看乙個簡單例子

$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 語言中,全域性變數在函式中自動...