在php中如果我們要定義常量有很多方法,但在類中我們要定義常量多半會用到const常量修飾符來定義了,下面小編來給各位同學介紹一下操作辦法。
在PHP中定義常量是通過define()函數來完成的,但在類中定義常量不能使用define(),而需要使用const修飾符。類中的常量使用const定義後,其訪問方式和靜態成員類似,都是通過類名或在成員方法中使用self訪問,但在PHP 5.3.0之後也可以使用對象來訪問。被const定義的常量不能重新賦值,如果在程序中試圖改變它的值將會出現錯誤。
代碼如下 復制代碼<?php
class MyClass {
const CONSTANT = 'CONSTANT value' ; //使用const聲明一個常量,並直接賦上初使值
function showConstant() {
echo self ::CONSTANT ."<br>" ;//使用self訪問常量,注意常量前不要加“$”
}
}
echo MyClass:: CONSTANT . "<br>" ; //在類外部使用類名稱訪問常量,也不要加”$”
$class = new MyClass();
$class->showConstant();
echo $class ::CONSTANT; // PHP 5.3.0之後
?>
關注細節:使用const定義的常量名稱前不需要使用“$“符號,且常量名稱通常都是大寫的。
試圖為const定義的常量賦值,將會出現錯誤。
代碼如下 復制代碼<?php
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 的“魔術常量”.
名稱 說明