PHP第三節(jié)變量介紹
來源:易賢網(wǎng) 閱讀:889 次 日期:2014-05-18 00:27:57
溫馨提示:易賢網(wǎng)小編為您整理了“PHP第三節(jié)變量介紹”,方便廣大網(wǎng)友查閱!

變量名與PHP中其它的標簽一樣遵循相同的規(guī)則。一個有效的變量名由字母或者下劃線開頭,后面跟上任意數(shù)量的字母,數(shù)字,或者下劃線。按照正常的正則表達式,它將被表述為:'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*'。

Note:$this是一個特殊的變量,它不能被賦值。

變量默認總是傳值賦值。那也就是說,當將一個表達式的值賦予一個變量時,整個原始表達式的值被賦值到目標變量。這意味著,例如,當一個變量的值賦予另外一個變量時,改變其中一個變量的值,將不會影響到另外一個變量。有關這種類型的賦值操作,請參閱表達式一章。

PHP也提供了另外一種方式給變量賦值:引用賦值。這意味著新的變量簡單的引用(換言之,“成為其別名”或者“指向”)了原始變量。改動新的變量將影響到原始變量,反之亦然。

使用引用賦值,簡單地將一個&符號加到將要賦值的變量前(源變量)。

有一點重要事項必須指出,那就是只有有名字的變量才可以引用賦值。

代碼如下:

<?php

$foo=25;

$bar=&$foo;//合法的賦值

$bar=&(24*7);//非法;引用沒有名字的表達式

functiontest()

{

return25;

}

$bar=&test();//非法

?>

雖然在PHP中并不需要初始化變量,但對變量進行初始化是個好習慣。未初始化的變量具有其類型的默認值-布爾類型的變量默認值是FALSE,整形和浮點型變量默認值是零,字符串型變量默認值是空字符串或者數(shù)組變量的默認值是空數(shù)組。

依賴未初始化變量的默認值在某些情況下會有問題,例如把一個文件包含到另一個之中時碰上相同的變量名。另外把register_globals打開是一個主要的安全隱患。使用未初始化的變量會發(fā)出E_NOTICE錯誤,但是在向一個未初始化的數(shù)組附加單元時不會。isset()語言結(jié)構可以用來檢測一個變量是否已被初始化。

預定義變量

PHP提供了大量的預定義變量。由于許多變量依賴于運行的服務器的版本和設置,及其它因素,所以并沒有詳細的說明文檔。一些預定義變量在PHP以命令行形式運行時并不生效。

從PHP4.1.0開始,PHP提供了一套附加的預定數(shù)組,這些數(shù)組變量包含了來自web服務器(如果可用),運行環(huán)境,和用戶輸入的數(shù)據(jù)。這些數(shù)組非常特別,它們在全局范圍內(nèi)自動生效,例如,在任何范圍內(nèi)自動生效。因此通常被稱為自動全局變量(autoglobals)或者超全局變量(superglobals)。(PHP中沒有用戶自定義超全局變量的機制。)超全局變量羅列于下文中;但是為了得到它們的內(nèi)容和關于PHP預定義變量的進一步的討論以及它們的本質(zhì),請參閱預定義變量。而且,你也將注意到舊的預定義數(shù)組($HTTP_*_VARS)仍舊存在。自PHP5.0.0起,用register_long_arrays設置選項可禁用長類型的PHP預定義變量數(shù)組。

變量范圍

變量的范圍即它定義的上下文范圍(也就是它的生效范圍)。大部分的PHP變量只有一個單獨的范圍。這個單獨的范圍跨度同樣包含了include和require引入的文件。

PHP的全局變量和C語言有一點點不同,在C語言中,全局變量在函數(shù)中自動生效,除非被局部變量覆蓋。而PHP中的局部變量不會被全局變量覆蓋,如果使用會是變量的缺省初始值。這可能引起一些問題,有些人可能不小心就改變了一個全局變量。PHP中全局變量在函數(shù)中使用時必須申明為global。

使用靜態(tài)變量

變量范圍的另一個重要特性是靜態(tài)變量(staticvariable)。靜態(tài)變量僅在局部函數(shù)域中存在,但當程序執(zhí)行離開此作用域時,其值并不丟失。

更多信息請查看IT技術專欄

更多信息請查看網(wǎng)絡編程
易賢網(wǎng)手機網(wǎng)站地址:PHP第三節(jié)變量介紹
關于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
聯(lián)系電話:0871-65317125(9:00—18:00) 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權所有:易賢網(wǎng)