首頁  >  文章  >  後端開發  >  php中常數、靜態屬性、非靜態屬性的區別

php中常數、靜態屬性、非靜態屬性的區別

墨辰丷
墨辰丷原創
2018-05-24 10:00:161482瀏覽

這篇文章主要介紹了php 類別中的常數、靜態屬性、非靜態屬性的區別與介紹,需要的朋友可以參考下

一。類別常數:在類別中始終保持不變的值定義為常數

類別的常數不能使用存取限制修飾符,他是public 的,可繼承,可以被子類別重寫,存取類別的常數必須使用雙冒號: : ,可以使用類別名稱或類別的實例來訪問,因為是常數,所以名稱不能使用表示變數的符號$.

可以把在類別中始終保持不變的值定義為常數。在定義和使用常數的時候不需要使用 $ 符號。

常數的值必須是一個定值,不能是變量,類別屬性,數學運算的結果或函數呼叫。

介面(interface)中也可以定義常數。更多範例請參閱文件中的介面部分。

自 PHP 5.3.0 起,可以用一個變數來動態呼叫類別。但該變數的值不能為關鍵字(如 self,parent 或 static)。

語法: const constant= '常數';

class Myclass{
 const constant = '常量';

 //类内部调用
 public function test(){
  echo self::constant.'
'; } } Myclass::test(); //类外部访问 echo Myclass::constant.'
'; //方法一 $obj = new Myclass(); //方法二 echo $obj::constant.'
';

二.靜態屬性: 是變數,可以常數的語法訪問,就是:: ,可以沒有實例化也能訪問

語法:public static $my_static = '類似常數';

##

class Myclass{
 public static $static_val = '静态属性';
 //类内部访问
 public function test(){
  return self::$static_val.'
'; } } //类外部访问 // 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 substr函數定義與用法彙總###############2017年php explode函數定義與用法匯總###################################################### ##############

以上是php中常數、靜態屬性、非靜態屬性的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn