PHP 范圍解析操作符(::)用法分析【訪問(wèn)靜態(tài)成員和類常量】
本文實(shí)例講述了PHP 范圍解析操作符(::)用法。分享給大家供大家參考,具體如下:
范圍解析操作符 (::)
范圍解析操作符(也可稱作 Paamayim Nekudotayim)或者更簡(jiǎn)單地說(shuō)是一對(duì)冒號(hào),可以用于訪問(wèn)靜態(tài)成員,類常量,還可以用于覆蓋類中的屬性和方法。
當(dāng)在類定義之外引用到這些項(xiàng)目時(shí),要使用類名。
自 PHP 5.3.0 起,可以通過(guò)變量來(lái)引用類,該變量的值不能是關(guān)鍵字(如 self,parent 和 static)。
把 Paamayim Nekudotayim 選作雙冒號(hào)操作符的名字似乎有些奇怪。然而,這是 Zend 開(kāi)發(fā)小組在寫 Zend Engine 0.5(被用于 PHP 3 中)時(shí)所作出的決定。事實(shí)上這個(gè)詞在希伯萊文就是雙冒號(hào)的意思。
在類的外部使用 ::
self,parent 和 static 這三個(gè)特殊的關(guān)鍵字是用于在類定義的內(nèi)部對(duì)其屬性或方法進(jìn)行訪問(wèn)的。
<?php
class MyClass {
const CONST_VALUE = 'A constant value';
}
$classname = 'MyClass';
echo $classname::CONST_VALUE; // 自 PHP 5.3.0 起
echo MyClass::CONST_VALUE;
在類定義的內(nèi)部使用 ::
當(dāng)一個(gè)子類覆蓋其父類中的方法時(shí),PHP 不會(huì)調(diào)用父類中已被覆蓋的方法。是否調(diào)用父類的方法取決于子類。這種機(jī)制也作用于構(gòu)造函數(shù)和析構(gòu)函數(shù),重載以及魔術(shù)方法。
<?php
class 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)用父類的方法
<?php
class 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();
運(yùn)行結(jié)果:
MyClass::myFunc()
OtherClass::myFunc()
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《PHP數(shù)組(Array)操作技巧大全》、《PHP基本語(yǔ)法入門教程》、《PHP運(yùn)算與運(yùn)算符用法總結(jié)》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見(jiàn)數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
Laravel 5.5 實(shí)現(xiàn)禁用用戶注冊(cè)示例
今天小編就為大家分享一篇Laravel 5.5 實(shí)現(xiàn)禁用用戶注冊(cè)示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
destoon調(diào)用企業(yè)會(huì)員公司形象圖片的實(shí)現(xiàn)方法
這篇文章主要介紹了destoon調(diào)用企業(yè)會(huì)員公司形象圖片的實(shí)現(xiàn)方法,非常實(shí)用,需要的朋友可以參考下2014-08-08
PHP通過(guò)反射動(dòng)態(tài)加載第三方類和獲得類源碼的實(shí)例
這篇文章主要介紹了PHP通過(guò)反射動(dòng)態(tài)加載第三方類和獲得類源碼的方法,一般在解析XML文件時(shí)會(huì)用到,需要的朋友可以參考下2015-11-11
destoon數(shù)據(jù)庫(kù)表說(shuō)明匯總
這篇文章主要介紹了destoon數(shù)據(jù)庫(kù)表說(shuō)明匯總,可以方便針對(duì)destoon進(jìn)行二次的時(shí)候查詢使用,需要的朋友可以參考下2014-07-07
遍歷echsop的region表形成緩存的程序?qū)嵗a
下面小編就為大家?guī)?lái)一篇遍歷echsop的region表形成緩存的程序?qū)嵗a。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-11-11
PHP簡(jiǎn)單的MVC框架實(shí)現(xiàn)方法
在PHP中使用MVC越來(lái)越流行了,特別是在一些開(kāi)源的框架當(dāng)中。本篇給大家介紹php簡(jiǎn)單的mvc框架實(shí)現(xiàn)方法,對(duì)php簡(jiǎn)單的mvc框架相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-12-12

