在程式執行的過程中,變數儲存的值可以隨時改變,而常量儲存的值是不可以改變的。變數用於儲存臨時資料資訊。某一變數被定義的時候,系統會自動為該變數分配乙個儲存空間存放變數的值。我們可以在定義變數的時候對其賦值,如果需要改動變數的值,只需再次對其進行賦值即可。對於那些臨時資料資訊或者處理過程,都可以存放在變數中。
常量用於儲存不經常改變的資料資訊。定義常量的時候可以對其賦值,在程式的整個執行期間內,這個賦值都有效且不可再次對該常量進行賦值操作。
前面講解了下變數,但我們還沒有系統地講解變數的應用。下面我們開始講解如何在php中實現變數的定義與賦值操作。
在php中定義乙個變數的語法格式如下:符合規定的變數命名如下:$變數名稱 = 變數的值
在為乙個變數命名時,需要遵循以下命名規則:
1:變數名以字母或下畫線開頭,可以由字母、下畫線或數字構成。
2:變數名區分大小寫,「va
r」和「
var」分別代表了兩個不同的變數。
3:自定義變數名稱不可與php提供的預設變數名稱相同。
4:在為變數命名時,盡量使用有意義的字串。
$name;
$_password;
$no1;
不符合規定的變數命名如下:
$1book;
$*a;
為變數賦值有兩種方式:傳值賦值和引用賦值,這兩種賦值方式在對資料處理上存在很大差別。
這種賦值方式使用「=」直接將乙個變數(或表示式)的值賦給另乙個變數。使用這種賦值方式,等號兩邊的變數值互不影響,任何乙個變數值的變化都不會影響到另乙個變數。從根本上來說,傳值賦值是通過在儲存區域複製乙個變數的副本來實現的。應用傳值賦值的示例**如下:
$a = 33;
$b = $a;
$b = 44;
echo
"變數a的值為" . $a . "
";echo
"變數b的值為" . $b;
output:
變數a的值為33
變數b的值為44
在上面**中,執行「a=33」語句
時,系統
會在記憶體
中為變數
a開闢一
個儲存空
間,並將
33這個數
值存入到
該儲存空
間。實現
過程如圖
2−14所
示。執行
「 b = $a」語句時,系統會在記憶體中為變數b開闢乙個儲存空間,並將變數a指向儲存空間的內容複製到變數b所指向的儲存空間。
引用賦值同樣是使用「=」將乙個變數的值賦給另乙個變數,但是需要在等號右邊的變數前面加上乙個「& 」符號。實際上這種賦值方式並不是真正意義上的賦值,而是乙個變數引用另乙個變數。在使用引用賦值的時候,兩個變數將會指向記憶體中同一儲存空間, 因此任何乙個變數的變化都會引起另外乙個變數的變化。應用引用賦值的示例**如下:
<?php
$a = 33;
$b = &$a;
$b = 44;
echo
"變數a的值為" . $a . "
";echo
"變數b的值為" . $b;
?>
output:
變數a的值為44
變數b的值為44
在上面**中執行「a=33」語句
時,對內
存操作的
過程與傳
值賦值相
同,這裡
就不再說
明了。執
行「b = &a」
語句後,
變數b將
會指向變
量a所佔
有的儲存
空間。執
行「b = 44」語句後,變數b所指向的儲存空間儲存的值變為44。此時由於變數a也指向此儲存空間,所以變數a的值也會變為44。
注意,注意,注意,重要的事情說三遍!這裡要特別強調一下上面這段話:執行「
b = &
a」語句後,變數b將會指向變數a所占有的儲存空間
使用php語言開發的時候,我們幾乎可以在任何位置宣告變數,但是變數宣告位置及宣告方式的不同決定了變數作用域的不同。所謂的變數作用域,指的是變數在哪些範圍能被使用,在哪些範圍不能被使用。在php中,按照變數作用域的不同可以分為區域性變數和全域性變數。區域性變數是宣告在某一函式體內的變數,該變數的作用範圍僅限於其所在函式體的內部。如果在該函式體外部引用這個變數,系統將會認為引用的是另外乙個變數。
區域性變數例項:
function
local
() $a="hello";
echo local();
echo"";
echo
$a;
output:
local
variable
hello
全域性變數可以在程式的任何地方被訪問,這種變數的作用範圍是最廣泛的。要將乙個變數宣告為全域性變數,只需在這個變數前面加上「global」關鍵字(不區分大小寫,也可以是global)。使用全域性變數,我們就能夠在函式內部引用函式外部引數,或者在函式外部引用函式內部的引數了。在函式內呼叫函式外定義的全域性變數,我們需要在函式中的變數前加上 global 關鍵字.全域性變數例項:
<?php
$a = "outside"; //定義乙個變數a(注意:此時$a是全域性變數)
function
local
()local(); //輸出local函式內部變數a的值
echo
"在local函式外部獲得變數b的值為" . $b; //在函式local外部輸出變數b的值
?>
output:
在local函式內部獲得變數a的值為outside
在local函式外部獲得變數b的值為inside
注意:應用全域性變數雖然能夠使我們更加方便地操作變數,但有的時候變數作用域的擴大,會給開發帶來麻煩,可能會產生一些預料不到的問題。在通常情況下,我們不建議使用全域性變數。
變數不僅有其特定的作用範圍,還有其存活的週期——生命週期。變數的生命週期指的是變數可被使用的乙個時間段,在這個時間段內變數是有效的;而一旦超出這個時間段變數將會失效,我們就不能夠再訪問到該變數的值了。php對於變數的生命週期規定如下:
區域性變數的生命週期為其所在函式被呼叫的整個過程。當區域性變數所在的函式結束時,區域性變數的生命週期也隨之結束。
全域性變數的生命週期為其所在「.php」指令碼檔案被呼叫的整個過程。當全域性變數所在指令碼檔案結束呼叫時,全域性變數的生命週期結束。
有時某個自定義函式結束後,我們希望該函式內的變數仍然存在,就需要將這個變數宣告為靜態變數。將乙個變數宣告為靜態變數的方法為,在變數前面加「static」關鍵字。
PHP 變數與常量
一 變數定義 顧名思義就是可變的量。在記憶體中隨機劃分乙個空間,指明資料型別,按照資料型別來存入值,這個整體稱為變數。二 資料型別 對變數儲存值的範圍進行劃分以加快存值取值的速度的標準。1 數值型 儲存整數的integer 小數的float 單精度浮點型 double 雙精度 浮點型 2 字元型 c...
PHP變數與常量
一 變數 2.php定界符 3.php特點 a.指令碼語言 b.解釋型c.弱型別d.面向過程e.物件導向 4.php的資料型別有哪些 標量型別 boolean interger float double string 復合型別 array object 特殊型別 資源 null 5.注意事項 變數不...
PHP的變數與常量
在php中,常量通常是乙個包含固定值的量,包含在常量中的值不會隨指令碼中其他因素的改變而改變。1.常量 define 函式 define name value 給常量取名字的時候要避開系統的關鍵字。constant 函式 constant string name 獲取常量的值 defined 函式 ...