php變數(shù)
PHP?變數(shù)
變數(shù)是用來儲存資訊的"容器":
實例(一)
<?php $x=5; $y=6; $z=$x+$y; echo $z; ?>
與代數(shù)類似
x=5
y=6
z=x+y
在代數(shù)中,我們使用字母(如x),並給它賦值(如5)。
從上面的表達式 z=x+y ,我們可以計算 z 的值為 11。
在 PHP 中,這些字母稱為變數(shù)。
變數(shù)是用來儲存資料的容器。
PHP 變數(shù)
與代數(shù)類似,可以給 PHP 變數(shù)賦予某個值(x=5)或表達式(z=x+y)。
變數(shù)可以是很短的名稱(如 x 和 y)或更具描述性的名稱(如 age、carname、totalvolume)。
PHP 變數(shù)規(guī)則:
·???????? 變數(shù)以$ 符號開始,後面跟著變數(shù)的名稱
·???????
·???????? 變數(shù)名稱只能包含字母數(shù)字字元以及底線(A-z、0-9 和_ )
·?????變數(shù)???寫的($y 和$Y 是兩個不同的變數(shù))
PHP 語句和PHP 變數(shù)都是區(qū)分大小寫的。
建立(宣告)PHP 變數(shù)PHP 沒有宣告變數(shù)的指令。
變數(shù)在您第一次賦值給它的時候被創(chuàng)建:
實例
<?php $txt="Hello world!"; $x=5; $y=10.5; echo $txt; echo $x; echo $y; ?>
在上面的語句執(zhí)行中,變數(shù)?txt?將保存值?Hello world!,且變數(shù)?x?將保存值?5,變數(shù)Y保存10.5。
註解:當您賦一個文字值給變數(shù)時,請在文字值兩側(cè)加上引號。
PHP 是一門弱型別語言在上面的實例中,我們注意到,不必向 PHP 宣告該變數(shù)的資料型別。
PHP 會根據(jù)變數(shù)的值,自動把變數(shù)轉(zhuǎn)換為正確的資料型別。
在強型別的程式語言中,我們必須在使用變數(shù)前先宣告(定義)變數(shù)的型別和名稱。
PHP 變數(shù)作用域變數(shù)的作用域是腳本中變數(shù)可被引用/使用的部分。
PHP 有三種不同的變因作用域:
·???????? local(局部)
·???????? cbal(?
#局部和全域作用域
在所有函數(shù)外部定義的變量,擁有全域作用域。除了函數(shù)外,全域變數(shù)可以被腳本中的任何部分訪問,要在一個函數(shù)中存取一個全域變量,需要使用 global 關(guān)鍵字。在 PHP 函數(shù)內(nèi)部宣告的變數(shù)是局部變量,只能在函數(shù)內(nèi)部存?。?/strong>
實例<?php $x=5; // 全局變量 function text () { $y=10; // 局部變量 echo "<p>測試函數(shù)內(nèi)變量:<p>"; echo "變量 x 為: $x"; echo "<br>"; echo "變量 y 為: $y"; } text (); echo "<p>測試函數(shù)外變量:<p>"; echo "變量 x 為: $x"; echo "<br>"; echo "變量 y 為: $y"; ?>
在上述實例中 text () 函數(shù)定義了 $x 和 $y 變數(shù)。 $x 變數(shù)在函數(shù)外聲明,所以它是全域變數(shù) , $y 變數(shù)在函數(shù)內(nèi)宣告所以它是局部變數(shù)。
當我們呼叫text ()函數(shù)並輸出兩個變數(shù)的值, 函數(shù)將會輸出局部變數(shù)$y 的值,但不能輸出$x 的值,因為$x 變數(shù)在函數(shù)外定義,無法在函數(shù)內(nèi)使用,如果要在函數(shù)中存取一個全域變量,則需要使用global 關(guān)鍵字。
然後我們在text ()函數(shù)外輸出兩個變數(shù)的值,函數(shù)會輸出全局部變數(shù)$x 的值,但是不能輸出$y 的值,因為$y 變數(shù)在函數(shù)中定義,屬於局部變數(shù)。
你可以在不同函數(shù)中使用相同的變數(shù)名稱,因為這些函數(shù)內(nèi)定義的變數(shù)名稱是局部變量,只作用於該函數(shù)內(nèi)。
global 關(guān)鍵字
global 關(guān)鍵字用於函數(shù)內(nèi)存取全域變數(shù)。
在函數(shù)內(nèi)呼叫函數(shù)外定義的全域變量,我們需要在函數(shù)中的變數(shù)前加上global 關(guān)鍵字:
實例
<?php $x=5; $y=10; function text () { global $x,$y; $y=$x*$y; } text (); echo $y; // 輸出 15 ?>
PHP 將所有全域變量儲存在一個名為$GLOBALS[demo] 的陣列中。 demo保存變數(shù)的名稱。這個數(shù)組可以在函數(shù)內(nèi)部訪問,也可以直接用來更新全域變數(shù)。
上面的實例可以寫成這樣:
實例
<?php $x=5; $y=10; function text () { $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y']; } text (); echo $y; ?>
#Static 作用域
##當一個函數(shù)完成時,它的所有變數(shù)通常都會被刪除。然而,有時候您希望某個局部變數(shù)不要被刪除。 要做到這一點,請在您第一次宣告變數(shù)時使用?static?關(guān)鍵字:實例<?php function text () { static $x=0; echo $x; $x++; } text (); text (); text (); ?>然後,每次呼叫函數(shù)時,該變數(shù)將會保留著函數(shù)前一次被呼叫時的值。 註解:此變數(shù)仍然是函數(shù)的局部變數(shù)。
參數(shù)作用域
參數(shù)是透過呼叫程式碼將值傳遞給函數(shù)的局部變數(shù)。 參數(shù)是在參數(shù)清單中宣告的,作為函數(shù)宣告的一部分:實例<?php function text ($x) { echo $x; } text (5); ?>