一.類別常數:在類別中始終保持不變的值定義為常數
類別的常數不能使用存取限制修飾符,他是public 的,可繼承,可以被子類別重寫,存取類別的常數必須使用雙冒號:: ,可以使用類別名稱或類別的實例來訪問,因為是常數,所以名稱不能使用表示變量的符號$.
可以把在類別中始終保持不變的值定義為常數。在定義和使用常數的時候不需要使用 $ 符號。
常數的值必須是一個定值,不能是變量,類別屬性,數學運算的結果或函數呼叫。
介面(interface)中也可以定義常數。更多範例請參閱文件中的介面部分。
自 PHP 5.3.0 起,可以用一個變數來動態呼叫類別。但該變數的值不能為關鍵字(如 self,parent 或 static)。
語法: const constant= '常數';
class Myclass{ const constant = '常量'; //类内部调用 public function test(){ echo self::constant.'<br>'; } } Myclass::test(); //类外部访问 echo Myclass::constant.'<br>'; //方法一 $obj = new Myclass(); //方法二 echo $obj::constant.'<br>';
二.靜態屬性: 是一個變量,可以常數的語法訪問,就是:: ,沒有實例化也能存取
語法:public static $my_static = '類似常數';
class Myclass{ public static $static_val = '静态属性'; //类内部访问 public function test(){ return self::$static_val.'<br>'; } } //类外部访问 // echo Myclass::test(); echo Myclass::$static_val; //方法一 $obj = new Myclass(); //方法二 echo $obj::$static_val; echo $obj->test();
三.非靜態屬性: 正常的變量,實例化後可以訪問,用-> 符號
語法: public $my_val = '正常變數'
class Myclass{ public $normal_val = '非静态属性'; //类内部访问 public function test(){ return $this->normal_val ; } } //类外部访问 $obj = new Myclass(); echo $obj->normal_val; echo $obj->test();
PHP取得類別中常數,屬性,及方法列表的方法
$r = new ReflectionClass($this); Zend_Debug::dump($r->getConstants(), "Constants"); Zend_Debug::dump($r->getProperties(), "Properties"); Zend_Debug::dump($r->getMethods(), "Methods");
以上是php類別常數、靜態屬性、非靜態屬性三者的差異詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!