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

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

墨辰丷
發布: 2023-03-27 18:20:01
原創
1670 人瀏覽過

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

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

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

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

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

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

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

語法: const constant= '常數';

class Myclass{
 const constant = '常量';

 //类内部调用
 public function test(){
  echo self::constant.&#39;<br>&#39;;
 } 
}
Myclass::test();
//类外部访问
echo Myclass::constant.&#39;<br>&#39;; //方法一

$obj = new Myclass();  //方法二
echo $obj::constant.&#39;<br>&#39;;
登入後複製

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

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

##

class Myclass{
 public static $static_val = &#39;静态属性&#39;;
 //类内部访问
 public function test(){
  return self::$static_val.&#39;<br>&#39;;
 } 
}

//类外部访问
// 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 = &#39;非静态属性&#39;;

 //类内部访问
 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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板