一文帶你讀懂php中的常量?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
一、常量
常量是一個簡單值的標識符(名字)。如同其名稱所暗示的,在腳本執(zhí)行期間該值不能改變(除了所謂的魔術(shù)常量,它們其實不是常量)。常量默認為大小寫敏感。按照慣例常量標識符總是大寫的。
常量名和其它任何 PHP 標簽遵循同樣的命名規(guī)則。合法的常量名以字母或下劃線開始,后面跟著任何字母,數(shù)字或下劃線。用正則表達式是這樣表達的:
[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* (注: 在這里,字母是 a-z,A-Z,以及從 127 到 255(0x7f-0xff)的 ASCII 字符)
和super globals 一樣,常量的范圍是全局的。不用管作用域就可以在腳本的任何地方訪問常量。有關(guān)作用得更多信息請閱讀手冊中的變量范圍。
二、語法
可以用 define() 函數(shù)來定義常量。一個常量一旦被定義,在程序執(zhí)行的過程中就不能再改變或者取消定義。
常量只能包含標量數(shù)據(jù)(boolean,integer,float 和 string)。
可以簡單的通過指定其名字來取得常量的值,不要在常量前面加上 $ 符號。如果常量名是動態(tài)的,也可以用函數(shù) constant() 來讀取常量的值。用get_defined_constants() 可以獲得所有已定義的常量列表。
注: 常量和(全局)變量在不同的名字空間中。這意味著例如 TRUE 和 $TRUE 是不同的。
如果使用了一個未定義的常量,PHP 假定你想要的是該常量本身的名字,如同你用字符串調(diào)用它一樣(CONSTANT 對應(yīng) "CONSTANT")。此時將發(fā)出一個 E_NOTICE 級的錯誤。參見手冊中為什么 $foo[bar] 是錯誤的(除非你事先用 define() 將 bar 定義為一個常量)。如果你只想檢查是否定義了某常量,用 defined() 函數(shù)。
三、常量和變量的不同
常量前面沒有美元符號($);
常量只能用 define() 函數(shù)定義,而不能通過賦值語句;
常量可以不用理會變量范圍的規(guī)則而在任何地方定義和訪問;
常量一旦定義就不能被重新定義或者取消定義;
常量的值只能是標量。
常量定義示例:
<?php define("CONSTANT", "Hello world."); echo CONSTANT; // outputs "Hello world." echo Constant; // outputs "Constant" and issues a notice. ?>
四、預定義常量
PHP 向它運行的任何腳本提供了大量的預定義常量。不過很多常量都是由不同的擴展庫定義的,只有在加載了這些擴展庫時才會出現(xiàn),或者動態(tài)加載后,或者在編譯時已經(jīng)包括進去了。
有四個魔術(shù)常量根據(jù)它們使用的位置而改變。例如 __LINE__ 的值就依賴于它在腳本中所處的行來決定。這些特殊的常量不區(qū)分大小寫,如下:
幾個 PHP 的“魔術(shù)常量”
__LINE__ 文件中的當前行號。
__FILE__ 文件的完整路徑和文件名。
__FUNCTION__ 函數(shù)名稱 (這是 PHP 4.3.0 新加的)。
__CLASS__ 類的名稱(這是 PHP 4.3.0 新加的)。
__METHOD__ 類的方法名(這是 PHP 5.0.0 新加的)。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。