一.類常量:在類中始終保持不變的值定義為常量
類的常量不能使用訪問限制修飾符,他是 public 的,可繼承,可以被子類重寫,訪問類的常量必須使用雙冒號 :: ,可以使用類名或類的實例來訪問,因為是常量,所以名稱不能使用表示變量的符號 $.
可以把在類中始終保持不變的值定義為常量。在定義和使用常量的時候不需要使用 $ 符號。
常量的值必須是一個定值,不能是變量,類屬性,數學運算的結果或函數調用。
接口(interface)中也可以定義常量。更多示例見文檔中的接口部分。
自 PHP 5.3.0 起,可以用一個變量來動態調用類。但該變量的值不能為關鍵字(如 self,parent 或 static)。
語法 : const constant= '常量'
- classMyclass{
- constconstant ='常量'
- //類內部調用
- publicfunctiontest(){
- echoself::constant.'
- '
- }
- }
- Myclass::test();
- //類外部訪問
- echoMyclass::constant.'
- '//方法一
- $obj=newMyclass(); //方法二
- echo$obj::constant.'
- '
二.靜態屬性:是一個變量,可以常量的語法訪問,就是 :: ,可以沒有實例化也能訪問
語法 :public static $my_static = '類似常量'
- classMyclass{
- publicstatic$static_val='靜態屬性'
- //類內部訪問
- publicfunctiontest(){
- returnself::$static_val.'
- '
- }
- }
- //類外部訪問
- // echo Myclass::test();
- echoMyclass::$static_val; //方法一
- $obj=newMyclass(); //方法二
- echo$obj::$static_val;
- echo$obj->test();
三.非靜態屬性:一個正常的變量,實例化后可以訪問,用 -> 符號
語法: public $my_val = '正常變量'
- classMyclass{
- public$normal_val='非靜態屬性'
- //類內部訪問
- publicfunctiontest(){
- return$this->normal_val ;
- }
- }
- //類外部訪問
- $obj=newMyclass();
- echo$obj->normal_val;
- echo$obj->test();
PHP獲取類中常量,屬性,及方法列表的方法
- $r=newReflectionClass($this);
- Zend_Debug::dump($r->getConstants(),"Constants");
- Zend_Debug::dump($r->getProperties(),"Properties");
- Zend_Debug::dump($r->getMethods(),"Methods");
新聞熱點
疑難解答