1. 程式人生 > >【php】global的使用與php的全域性變數

【php】global的使用與php的全域性變數

php的全域性變數和其餘程式語言是不同的,在大多數的程式語言中,全域性變數在其下的函式、類中自動生效,除非被區域性變數覆蓋,或者根本就不允許再宣告相同名稱與型別的區域性變數,但是php中的全域性變數不是預設生效的。php中全域性變數在函式中使用時必須申明為全域性,Global這個關鍵字在函式中定義才有用。也就是說Global的作用是定義全域性變數,但是這個全域性變數不是應用於整個網站,而是應用於當前頁面,包括include或require的所有檔案。 

直接用一個例子來說明此問題,如下程式碼:

<?php
$a=5;
function test(){
	echo $a;
}
test();
?>

很簡單,宣告一個全域性變數$a=5,然後宣告一個函式test()列印這個全域性變數,之後,呼叫這個test(),按照一般的程式語言的思維,此處的輸出必然為5,然而,在實際執行卻是如下的效果:


直接報錯的了,說這個a沒有定義,簡直是無法理喻,但是php就是這樣設定,可是我卻是需要使用到$a作為全域性變數,有可能下面還有很多函式、很多類要使用這個$a啊!這是,你需要每次使用全域性變數$a之間,用global這個關鍵字宣告一下。

如下程式碼則是正確示範:

<?php
$a=5;
function test(){
	global $a;
	echo $a;
}
test();
?>
執行結果如下,這樣a就可以使用了,每次使用全域性變數$a都要這樣宣告一下,這是php的規則。

值得注意的是,如下的程式碼是錯誤的:

<?php
global $a;
$a=5;
function test(){
	echo $a;
}
test();
?>
執行結果同樣如此: