PHP 變數與常量

2021-07-08 18:22:33 字數 3848 閱讀 7331

在程式執行的過程中,變數儲存的值可以隨時改變,而常量儲存的值是不可以改變的。

變數用於儲存臨時資料資訊。某一變數被定義的時候,系統會自動為該變數分配乙個儲存空間存放變數的值。我們可以在定義變數的時候對其賦值,如果需要改動變數的值,只需再次對其進行賦值即可。對於那些臨時資料資訊或者處理過程,都可以存放在變數中。

常量用於儲存不經常改變的資料資訊。定義常量的時候可以對其賦值,在程式的整個執行期間內,這個賦值都有效且不可再次對該常量進行賦值操作。

前面講解了下變數,但我們還沒有系統地講解變數的應用。下面我們開始講解如何在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 函式 ...