【PHP系列教程】(5)——PHP的常量

來源:互聯網
上載者:User
文章目錄
  • 一、文法
  • 二、預定義常量

【PHP系列教程】(4)講述了PHP的變數:http://blog.csdn.net/rocket5725/archive/2010/01/08/5159704.aspx

本節主要介紹PHP中的常量,主要包括其文法和預定義常量的介紹。

常量是一個簡單值的標識符(名字)。如同其名稱所暗示的,在指令碼執行期間該值不能改變(除了所謂的魔術常量,它們其實不是常量)。常量預設為大小寫敏感。按照慣例常量標識符總是大寫的。

常量名和其它任何 PHP 標籤遵循同樣的命名規則。合法的常量名以字母或底線開始,後面跟著任何字母,數字或底線。用Regex是這樣表達的:[a-zA-Z_/x7f-/xff][a-zA-Z0-9_/x7f-/xff]*

注: 在這裡,字母是 a-z,A-Z,以及從 127 到 255(0x7f-0xff)的 ASCII 字元。

和 superglobals 一樣,常量的範圍是全域的。不用管範圍就可以在指令碼的任何地方訪問常量。

一、文法

可以用 define() 函數來定義常量。一個常量一旦被定義,就不能再改變或者取消定義。

常量只能包含標量資料(boolean,integer,float 和 string)。

可以簡單的通過指定其名字來取得常量的值,不要在常量前面加上 $ 符號。如果常量名是動態,也可以用函數 constant() 來讀取常量的值。用 get_defined_constants() 可以獲得所有已定義的常量列表。

注: 常量和(全域)變數在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。

如果使用了一個未定義的常量,PHP 假定你想要的是該常量本身的名字,如同你用字串調用它一樣(CONSTANT 對應 "CONSTANT")。此時將發出一個 E_NOTICE 級的錯誤。參見手冊中為什麼 $foo[bar] 是錯誤的(除非你事先用 define() 將 bar 定義為一個常量)。如果你只想檢查是否定義了某常量,用 defined() 函數。

常量和變數不同:

1、常量前面沒有貨幣符號($);

2、常量只能用 define() 函數定義,而不能通過指派陳述式;

3、常量可以不用理會變數範圍的規則而在任何地方定義和訪問;

4、常量一旦定義就不能被重新定義或者取消定義;

5、常量的值只能是標量。

代碼1:定義常量

<?php<br />define("CONSTANT", "Hello world.");<br />echo CONSTANT; // outputs "Hello world."<br />echo Constant; // outputs "Constant" and issues a notice.<br />?>

二、預定義常量

PHP 向它啟動並執行任何指令碼提供了大量的預定義常量。不過很多常量都是由不同的擴充庫定義的,只有在載入了這些擴充庫時才會出現,或者動態載入後,或者在編譯時間已經包括進去了。

有四個魔術常量根據它們使用的位置而改變。例如 __LINE__ 的值就依賴於它在指令碼中所處的行來決定。這些特殊的常量不區分大小寫,如下:

名稱 說明
__LINE__ 檔案中的當前行號。
__FILE__ 檔案的完整路徑和檔案名稱。
__FUNCTION__ 函數名稱(這是 PHP 4.3.0 新加的)。
__CLASS__ 類的名稱(這是 PHP 4.3.0 新加的)。
__METHOD__ 類的方法名(這是 PHP 5.0.0 新加的)。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.