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

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

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

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

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

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

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

代碼如下:

<?php

$foo=25;

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

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

functiontest()

{

return25;

}

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

?>

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

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

預(yù)定義變量

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

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

變量范圍

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

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

使用靜態(tài)變量

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

更多信息請查看IT技術(shù)專欄

更多信息請查看網(wǎng)絡(luò)編程
易賢網(wǎng)手機(jī)網(wǎng)站地址:PHP第三節(jié)變量介紹
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)