1.常量是一個簡單值的標(biāo)識符,在腳本執(zhí)行期間不可修改,全部大寫命名是個好習(xí)慣。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名與空間、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、順義網(wǎng)站維護(hù)、網(wǎng)站推廣。
2.語法
一般用define定義,defined判斷是否存在
5.3以后可以用const定義(const一般用于類內(nèi)部屬性的定義)
常量只能包含標(biāo)量數(shù)據(jù)(int,bool,string,float)
當(dāng)無法確定常量名稱時可用constant()獲取
如:
class a
{
const b = "test";
}
$a = 'b';
echo constant("a::".$a);
?>
注意:居然可以設(shè)定空字符串為常量(這是BUG嗎)
注意:在添加命名空間后,define和const的訪問形式將會不一樣
如:
namespace sub;
define("ABC","DEF");
const DEF="abc";
class foo {
const BAR = 'Hello World';
}
constant('ABC'); // works
//constant('sub\ABC'); // not works
//constant('DEF'); // not works
constant('sub\DEF'); // works
//constant('foo::BAR'); // not works
constant('sub\foo::BAR'); // works
?>
所以由此可證明:define出來的常量是全局的,而const出來的常量是局部的,這就是它們之間的區(qū)別。
get_defined_constants可獲取所有常量組成的數(shù)組
3.魔術(shù)常量
大量魔術(shù)常量是隨著擴(kuò)展庫而定義的,下面列舉一些隨代碼位置改變而改變的常量:
__LINE__:文件中的當(dāng)前行號
__FILE__:文件的完整路徑(如果用在被包含的文件中,則顯示被包含的文件名)
__DIR__:文件所在目錄(如果用在被包含的文件中,則顯示被包含的目錄),等價于dirname(__FILE__),這兩個都可以用于絕對路徑的判斷依據(jù)
__FUNCTION__:返回該函數(shù)的名稱
__CLASS__:返回該類的名稱
__TRAIT__:返回Trait的名稱(Trait是新的一種繼承類似類,目前感覺還沒有什么大用處)
__METHOD:返回類的方法名(與__FUNCTION__的區(qū)別在于他的形式是類名::方法名)
__NAMESPACE__:返回當(dāng)前命名空間的名稱
擴(kuò)展:get_class可以返回對象的類名