常量
?????? 獲取常量的值有兩種方法:一種是使用常量名直接獲取值玉组;另一種是使用constant()函參數const_name為要獲取常量的名稱耍目,也可為存儲常量名的變量房交。如果成功則返回常量的值,否則提示錯誤信息常量沒有被定義糙捺。
???? 參數诫咱,constant()函數和直接使用常量名輸出的效果是一樣的,但函數可以動態(tài)地輸出不同的常量继找,在使用上要靈活方便得多遂跟。函數的語法格式為:mixed constant(string const_name)
使用defined()函數逃沿,來判斷一個常量是否已經定義婴渡。該函數的語法格式如下:
bool defined(string constant_name);
參數constant_name為要獲取常量的名稱,成功則返回true凯亮,否則返回false
預定義常量:
1.__FILE__:默認常量边臼,PHP程序文件名
2.__LINE__:默認常量,PHP程序行數
變量
????? 變量是指在程序執(zhí)行過程中數值可以變化的量假消。變量通過一個名字(變量名)來標識柠并。系統(tǒng)為程序中的每一個變量分配一個存儲單元,變量名實質上就是計算機內存單元的命名富拗。因此臼予,借助變量名即可訪問內存中的數據。
聲明:和很多語言不同啃沪,在PHP中使用變量之前不需要聲明變量(PHP 4之前需要聲明變量)粘拾,只需為變量賦值即可。
要求:變量賦值创千,是指給變量一個具體的數據值缰雇,對于字符串和數字類型的變量入偷,可以通過“=”來實現。格式為:
命名規(guī)則:對變量賦值時械哟,要遵循變量命名規(guī)則
合法的變量命名:$thisCup="oink";$_Class="roof ";
非法的變量命名:$11112_var=11112;? //變量名不能以數字字符開頭
???????????????????????? $@spcn = "spcn";? ? ? ? ? //變量名不能以其他字符開頭
除了直接賦值外疏之,還有兩種方式可為變量聲明或賦值(類似iOS的深淺拷貝)
變量間賦值:變量間的賦值是指賦值后兩個變量使用各自的內存,互不干擾暇咆。
引用賦值:引用的概念是锋爪,用不同的名字訪問同一個變量內容。當改變其中一個變量的值時爸业,另一個也跟著發(fā)生變化几缭。使用&符號來表示引用。
變量的作用域:
概述:變量在使用時沃呢,要符合變量的定義規(guī)則年栓。變量必須在有效范圍內使用,如果變量超出有效范圍薄霜,則變量也就失去其意義了某抓。變量的作用域如下表所示。
局部變量:在函數的內部定義的變量惰瓜,其作用域是所在函數否副。
全局變量:被定義在所有函數以外的變量,其作用域是整個PHP文件崎坊,但在用戶自定義函數內部是不可用的备禀。如果希望在用戶自定義函數內部使用全局變量,則要使用global關鍵字聲明
靜態(tài)變量:能夠在函數調用結束后仍保留變量值奈揍,當再次回到其作用域時曲尸,又可以繼續(xù)使用原來的值。而一般變量是在函數調用結束后男翰,其存儲的數據值將被清除另患,所占的內存空間被釋放。使用靜態(tài)變量時蛾绎,先要用關鍵字static來聲明變量昆箕,把關鍵字static放在要定義的變量之前。
變量作用域表明:在函數內部定義的變量租冠,其作用域為所在函數鹏倘,如果在函數外賦值,將被認為是完全不同的另一個變量顽爹。在退出聲明變量的函數時纤泵,該變量及相應的值就會被清除。
靜態(tài)變量的應用:在博客中使用靜態(tài)變量記錄瀏覽者的人數话原,每一次用戶訪問和離開時夕吻,都能夠保留目前瀏覽者的人數诲锹。在聊天室中也可以用靜態(tài)變量來記錄用戶的聊天內容。
全局變量的說明:全局變量可以在程序中的任何地方訪問涉馅,但是在用戶自定義函數內部是不可用的归园。想在用戶自定義函數內部使用全局變量,要使用global關鍵字聲明稚矿。
$zy = "不會看到." ;//聲明全局變量
$zy$zyy = "會看到" ;//聲明全局變量
$zyyfunction globaltest(){
echo $zy."<br>";//$zy不能被調用庸诱,沒有輸出? ? ? ? ??
global $zyy;//利用關鍵字global在函數內部定義全局變量? ? ? ? ? ?
echo $zyy."<br>" ;//此處調用$zyy
}? ?
globaltest();
可變變量:
概念:可變變量是一種獨特的變量衙解,它允許動態(tài)改變一個變量名稱虹茶。(類似iOS的雙指針)
原理:該變量的名稱由另外一個變量的值來確定,實現過程就是在變量的前面再多加一個美元符號“$”续扔。
<?php
$change_name = "trans";?????????????????????????? //聲明變量
$trans = "You can see me!";//聲明變量
$transecho $change_name ;? ? ? ? ? ? ? ? ? ? ?? //輸出變量$change_nameecho "
echo "<br>";?????????????????????????????????????????????? //換行
echo $$change_name ;? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //通過可變變量輸出$trans的值
昧识?>
預定義變量:
$_SERVER['SERVER_ADDR']:當前運行腳本所在的服務器的IP地址
$_SERVER['SERVER_NAME']:當前運行腳本所在服務器主機的名稱钠四。如果該腳本運行在一個虛擬主機上,則該名稱是由虛擬主機所設置的值決定
$_SERVER['REQUEST_METHOD']:訪問頁面時的請求方法跪楞。如GET缀去、HEAD、POST甸祭、PUT等缕碎,如果請求的方式是HEAD,PHP腳本將在送出頭信息后中止(這意味著在產生任何輸出后池户,不再有輸出緩沖)