在php中如果我們要定義常量有很多方法,但在類中我們要定義常量多半會用到const常量修飾符來定義了,下面小編來給各位同學介紹一下操作辦法。
在PHP中定義常量是通過define()函數來完成的,但在類中定義常量不能使用define(),而需要使用const修飾符。類中的常量使用const定義後,其訪問方式和靜態成員類似,都是通過類名或在成員方法中使用self訪問,但在PHP 5.3.0之後也可以使用對象來訪問。被const定義的常量不能重新賦值,如果在程式中試圖改變它的值將會出現錯誤。
| 代碼如下 |
複製代碼 |
class MyClass { const CONSTANT = 'CONSTANT value' ; //使用const聲明一個常量,並直接賦上初使值 function showConstant() { echo self ::CONSTANT ." " ;//使用self訪問常量,注意常量前不要加“$” } } echo MyClass:: CONSTANT . " " ; //在類外部使用類名稱訪問常量,也不要加”$” $class = new MyClass(); $class->showConstant(); echo $class ::CONSTANT; // PHP 5.3.0之後 ?> |
關注細節:使用const定義的常量名稱前不需要使用“$“符號,且常量名稱通常都是大寫的。
試圖為const定義的常量賦值,將會出現錯誤。
| 代碼如下 |
複製代碼 |
class MyClass { const CONSTANT = 'CONSTANT value' ; function setCONSTANT(){ self ::CONSTANT = 'news CONSTANT' ;//程式運行結果將會出錯。 } } echo MyClass:: CONSTANT ; ?> |
程式運行結果將會出錯。
使用const修飾的常量更其它的常量 有點不同的地方就是:常量名前不要使用”$”,切記!當然這個常量值也是不能修改的,一旦定義就不能程式的任何地方進行“人為”的修改。這跟使用 define定義是一樣,還有就是使用const來定義當然也遵守其它常量的命名規則
擴充閱讀:
常量前面沒有貨幣符號($);
常量只能用 define() 函數定義,而不能通過指派陳述式;
常量可以不用理會變數範圍的規則而在任何地方定義和訪問;
常量一旦定義就不能被重新定義或者取消定義;
常量的值只能是標量;
常量只能包含標量資料(boolean,integer,float 和 string),不要定義 resource常量.
可以用函數 constant() 來讀取常量的值.get_defined_constants()可以獲得所有已定義的常量列表.
如果使用了一個未定義的常量,PHP 假定想要的是該常量本身的名字,如同用字串調用它一樣(CONSTANT 對應 “CONSTANT”),此時將發出一個 E_NOTICE 級的錯誤.
PHP 的“魔術常量”.
| 名稱 |
說明 |
| __LINE__ |
檔案中的當前行號。 |
| __FILE__ |
檔案的完整路徑和檔案名稱。如果用在包含檔案中,則返回包含檔案名稱。自 PHP 4.0.2 起,__FILE__ 總是包含一個絕對路徑,而在此之前的版本有時會包含一個相對路徑。 |
| __FUNCTION__ |
函數名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該函數被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。 |
| __CLASS__ |
類的名稱(PHP 4.3.0 新加)。自 PHP 5 起本常量返回該類被定義時的名字(區分大小寫)。在 PHP 4 中該值總是小寫字母的。 |
| __METHOD__ |
類的方法名(PHP 5.0.0 新加)。返回該方法被定義時的名字(區分大小寫)。 |
http://www.bkjia.com/PHPjc/632685.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/632685.htmlTechArticle在php中如果我們要定義常量有很多方法,但在類中我們要定義常量多半會用到const常量修飾符來定義了,下面小編來給各位同學介紹一下操作...