define('name', 'value') 自定義全局常量伴郁,默認(rèn)大小寫敏感
const 定義類常量耿战, 常量明前不用$, 一般使用大寫字母
定義全局常量
define('CH', '傳說');
定義類常量
class ConstTest{
const VERSION = '1.0'
function getConstTest(){
echo 'self::VERSION is :' . self::VERSION; //這里不使用$符號
}
}
Ps:
- 一般盡量不使用define的原因:
1.1 define 定義后的常量不能再修改 或 再次賦值,會報notice錯誤
1.2 判斷是否定義全局常量的方法是: defined('常量名') ,大小寫注意焊傅,不能用isset()判斷
1.3 執(zhí)行效率低剂陡,系統(tǒng)會從整個執(zhí)行流程中查找該全局常量
類常量和類靜態(tài)變量
類屬性中有:類常量狈涮,類靜態(tài)變量,公有鸭栖、私有歌馍、受保護(hù)變量
class Test{
const CONSTVAR= 'constvar'; //類常量
static $static_var= 'staticvar'; //類靜態(tài)變量
function getStaticVar(){
return self :: $staticVar;
}
}
echo Test::CONSTVAR; // 類常量
echo Test::$static_var; //類靜態(tài)變量
Ps:
- 讓同一個函數(shù)在多次調(diào)用時可以使用同一個共享變量.就是靜態(tài)變量(屬性)
- 類的靜態(tài)屬性,會在類文件加載時就初始化晕鹊,屬性值是可以更改的松却。值可以是任意變量類型(但初始化的時候. 只能是簡單數(shù)據(jù)類型, 數(shù)組)
- 類常量,一旦定義了就無法變更值捏题。值只能是簡單的數(shù)據(jù)類型
Link:
參考和整理自以下鏈接:
1.http://www.jb51.net/article/55089.htm
2.http://huangqiqing123.iteye.com/blog/1921428