變量是用於存儲數據的容器,與代數相似,可以給變量賦予某個確定的值(例如:$x=3)或者是賦予其它的變量(例如:$x=$y+$z)。變量的定義主要有以下規則:
php中的變量在第一次賦予它值的時候被創建,如果變量未賦值,則在輸出時會出現錯誤,如下面所示:
<?php $x; echo $x; ?>
此時浏覽器會出現錯誤提示:
這個部分與Python有所區別,Python中如果變量沒有被賦值,編譯器會直接提示錯誤,我們需要注意一下。
圖、Python變量未賦值發生錯誤
php是一門弱類型語言,在定義變量時,我們不需要定義變量的類型,php會根據變量的值,自動的將變量轉換成正確的數據類型。如下例所示:
<?php $x=3; $y=3.0; $str="hello"; $bool=false; $arr=array(1,2,3); $_null=NULL; echo gettype($x),"<br/>"; //輸出類型為integ echo gettype($y),"<br/>"; //輸出類型為double echo gettype($str),"<br/>"; //輸出類型為string echo gettype($bool),"<br/>"; //輸出類型為boolean echo gettype($arr),"<br/>"; //輸出類型為array echo gettype($_null),"<br/>"; //輸出類型為NULL ?>
結果為:
接下來我們將對php的四種變量作用域進行討論,變量作用域定義了變量的作用范圍,php主要有以下四種變量作用域:
(1)局部與全局作用域
在函數外定義的變量,擁有全局作用域,除了函數外,全局作用域可以被腳本中的任何部分訪問,要在一個函數中訪問全局變量,需要在函數中變量之前加上
global 關鍵字。
實例:
<?php /*局部作用域與全局作用域*/ $a=5; function test() { $b=10; echo "測試函數內變量<br/>"; echo "變量a的值為:$a <br/>"; //變量$a未在函數內定義,在引用時出現錯誤. echo "變量b的值為:$b<br/>"; } test(); echo "測試函數外變量<br/>"; echo "變量a的值為:$a <br/>"; echo "變量b的值為:$b<br/>"; //變量$a未在函數內定義,在引用時出現警告. ?>
結果如下:
圖、局部變量與全局變量