PHP 范圍解析操作符(::)用法分析【訪問靜態(tài)成員和類常量】
本文實例講述了PHP 范圍解析操作符(::)用法。分享給大家供大家參考,具體如下:
范圍解析操作符 (::)
范圍解析操作符(也可稱作 Paamayim Nekudotayim)或者更簡單地說是一對冒號,可以用于訪問靜態(tài)成員,類常量,還可以用于覆蓋類中的屬性和方法。
當在類定義之外引用到這些項目時,要使用類名。
自 PHP 5.3.0 起,可以通過變量來引用類,該變量的值不能是關(guān)鍵字(如 self,parent 和 static)。
把 Paamayim Nekudotayim 選作雙冒號操作符的名字似乎有些奇怪。然而,這是 Zend 開發(fā)小組在寫 Zend Engine 0.5(被用于 PHP 3 中)時所作出的決定。事實上這個詞在希伯萊文就是雙冒號的意思。
在類的外部使用 ::
self,parent 和 static 這三個特殊的關(guān)鍵字是用于在類定義的內(nèi)部對其屬性或方法進行訪問的。
<?phpclass MyClass { const CONST_VALUE = ’A constant value’;}$classname = ’MyClass’;echo $classname::CONST_VALUE; // 自 PHP 5.3.0 起echo MyClass::CONST_VALUE;
在類定義的內(nèi)部使用 ::
當一個子類覆蓋其父類中的方法時,PHP 不會調(diào)用父類中已被覆蓋的方法。是否調(diào)用父類的方法取決于子類。這種機制也作用于構(gòu)造函數(shù)和析構(gòu)函數(shù),重載以及魔術(shù)方法。
<?phpclass OtherClass extends MyClass{ public static $my_static = ’static var’; public static function doubleColon() { echo parent::CONST_VALUE . 'n'; echo self::$my_static . 'n'; }}$classname = ’OtherClass’;echo $classname::doubleColon(); // 自 PHP 5.3.0 起OtherClass::doubleColon();
調(diào)用父類的方法
<?phpclass MyClass{ protected function myFunc() { echo 'MyClass::myFunc()n'; }}class OtherClass extends MyClass{ // 覆蓋了父類的定義 public function myFunc() { // 但還是可以調(diào)用父類中被覆蓋的方法 parent::myFunc(); echo 'OtherClass::myFunc()n'; }}$class = new OtherClass();$class->myFunc();
運行結(jié)果:
MyClass::myFunc()OtherClass::myFunc()
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語法入門教程》、《PHP運算與運算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家PHP程序設(shè)計有所幫助。
相關(guān)文章:
1. python GUI庫圖形界面開發(fā)之PyQt5動態(tài)(可拖動控件大小)布局控件QSplitter詳細使用方法與實例2. CSS3實例分享之多重背景的實現(xiàn)(Multiple backgrounds)3. js開發(fā)中的頁面、屏幕、瀏覽器的位置原理(高度寬度)說明講解(附圖)4. CSS清除浮動方法匯總5. 不要在HTML中濫用div6. XML入門的常見問題(三)7. Python數(shù)據(jù)分析JupyterNotebook3魔法命令詳解及示例8. 父div高度不能自適應(yīng)子div高度的解決方案9. ASP動態(tài)include文件10. vue跳轉(zhuǎn)頁面常用的幾種方法匯總
