這篇文章主要介紹了php 類別中的常數、靜態屬性、非靜態屬性的區別與介紹,需要的朋友可以參考下
一。類別常數:在類別中始終保持不變的值定義為常數
類別的常數不能使用存取限制修飾符,他是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();
class Myclass{ public $normal_val = '非静态属性'; //类内部访问 public function test(){ return $this->normal_val ; } } //类外部访问 $obj = new Myclass(); echo $obj->normal_val; echo $obj->test();
$r = new ReflectionClass($this); Zend_Debug::dump($r->getConstants(), "Constants"); Zend_Debug::dump($r->getProperties(), "Properties"); Zend_Debug::dump($r->getMethods(), "Methods");
以上就是本文的全部內容,希望對大家的學習有所幫助。
相關推薦:############PHP###字串定義方式及各自區別 ######### ######php substr函數定義與用法彙總###############2017年php explode函數定義與用法匯總###################################################### ##############
以上是php中常數、靜態屬性、非靜態屬性的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!