php基礎(chǔ)知識:類與對象(4) 范圍解析操作符(::)
更新時(shí)間:2006年12月13日 00:00:00 作者:
范圍解析操作符(也可稱作 Paamayim Nekudotayim)或者更簡單地說是一對冒號,可以用于訪問靜態(tài)成員、方法和常量,還可以用于訪問被覆蓋類中的成員和方法。
當(dāng)在類的外部訪問這些靜態(tài)成員、方法和常量時(shí),必須使用類的名字。
把 Paamayim Nekudotayim 在希伯萊文就是雙冒號的意思。
在類的外部使用 :: 操作符
class MyClass {
const CONST_VALUE = 'A constant value';
}
echo MyClass::CONST_VALUE;
self 和 parent 這兩個(gè)特殊的關(guān)鍵字是用于在類的內(nèi)部對成員或方法進(jìn)行訪問的。
例子:
class OtherClass extends MyClass
{
public static $my_static = 'static var';
public static function doubleColon() {
echo parent::CONST_VALUE . " n";
echo self::$my_static . " n";
}
}
OtherClass::doubleColon();
當(dāng)一個(gè)子類覆蓋其父類中的方法時(shí),PHP 不會再執(zhí)行父類中已被覆蓋的方法,直到子類中調(diào)用這些方法為止。(是不是廢話?不是,這是PHP與其他主流語言的一點(diǎn)區(qū)別)。這種機(jī)制也作用于構(gòu)造函數(shù)和析構(gòu)函數(shù)、重載及魔術(shù)函數(shù)。
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();
--------------------------------------------------------------------------------
??重點(diǎn)??訪問靜態(tài)方法或者成員時(shí)一定要使用類名::的方式。
另外就是注意:PHP不會主動調(diào)用父類的方法,包括構(gòu)造函數(shù)和析構(gòu)函數(shù)在內(nèi)。
參見這個(gè)文字:http://163xiaofan.blog.163.com/blog/static/1713578020061027101820973
當(dāng)在類的外部訪問這些靜態(tài)成員、方法和常量時(shí),必須使用類的名字。
把 Paamayim Nekudotayim 在希伯萊文就是雙冒號的意思。
在類的外部使用 :: 操作符
class MyClass {
const CONST_VALUE = 'A constant value';
}
echo MyClass::CONST_VALUE;
self 和 parent 這兩個(gè)特殊的關(guān)鍵字是用于在類的內(nèi)部對成員或方法進(jìn)行訪問的。
例子:
class OtherClass extends MyClass
{
public static $my_static = 'static var';
public static function doubleColon() {
echo parent::CONST_VALUE . " n";
echo self::$my_static . " n";
}
}
OtherClass::doubleColon();
當(dāng)一個(gè)子類覆蓋其父類中的方法時(shí),PHP 不會再執(zhí)行父類中已被覆蓋的方法,直到子類中調(diào)用這些方法為止。(是不是廢話?不是,這是PHP與其他主流語言的一點(diǎn)區(qū)別)。這種機(jī)制也作用于構(gòu)造函數(shù)和析構(gòu)函數(shù)、重載及魔術(shù)函數(shù)。
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();
--------------------------------------------------------------------------------
??重點(diǎn)??訪問靜態(tài)方法或者成員時(shí)一定要使用類名::的方式。
另外就是注意:PHP不會主動調(diào)用父類的方法,包括構(gòu)造函數(shù)和析構(gòu)函數(shù)在內(nèi)。
參見這個(gè)文字:http://163xiaofan.blog.163.com/blog/static/1713578020061027101820973
相關(guān)文章
php 實(shí)現(xiàn)進(jìn)制相互轉(zhuǎn)換
最近的項(xiàng)目中需要用到進(jìn)制轉(zhuǎn)換,這個(gè)問題在剛剛接觸計(jì)算機(jī)理論時(shí)候,還是很會的,好久不用,居然模糊了……2016-04-04PHP日期函數(shù)date格式化UNIX時(shí)間的方法
這篇文章主要介紹了PHP日期函數(shù)date格式化UNIX時(shí)間的方法,實(shí)例分析了php中date函數(shù)的使用技巧,需要的朋友可以參考下2015-03-03PHP ADODB實(shí)現(xiàn)事務(wù)處理功能示例
這篇文章主要介紹了PHP ADODB實(shí)現(xiàn)事務(wù)處理功能,結(jié)合實(shí)例形式分析了php使用ADODB進(jìn)行事務(wù)提交與回滾處理等相關(guān)操作技巧,需要的朋友可以參考下2018-05-05PHP實(shí)現(xiàn)XML與數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換類實(shí)例
這篇文章主要介紹了PHP實(shí)現(xiàn)XML與數(shù)據(jù)格式進(jìn)行轉(zhuǎn)換類,實(shí)例分析了php進(jìn)行XML格式數(shù)據(jù)的方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07nginx+thinkphp下解決不支持pathinfo模式
這篇文章主要介紹了nginx+thinkphp下解決不支持pathinfo模式的相關(guān)資料,需要的朋友可以參考下2015-07-07