首頁  >  文章  >  後端開發  >  php中雙冒號::範圍解析運算子的意義介紹

php中雙冒號::範圍解析運算子的意義介紹

黄舟
黄舟原創
2017-07-02 11:44:084166瀏覽

PHP代碼中常見"::"的運算子,這個是作用域限定運算符,它用來置頂類別中不通作用域的級別,左邊是作用域,右邊是訪問作用域的成員。

作用域限定運算子(也可稱為:範圍解析運算子)或更簡單地說是一對冒號,
可以用來存取靜態成員、方法和常數,也可以用來覆寫類別中的成員和方法。

在PHP中定義作用域的有self和parent,在PHP6中提供了static作用域。

self:表示目前類別的作用域,不能在類別之外的程式碼使用self,在擴充類別中使用self時,它呼叫的不是父類別的方法,而是擴展類別的重載方法。

parent:表示目前類別父類別的作用域。

<?php
class forasp{
static $url="http://www.4u4v.cn";
static $webname = "网站制作学习之php双冒号";
public function writeurl(){
echo self::$url; //调用自己的内容
}
public function writewebname(){
echo "测试子类调用父类内容";
}
}
class cn extends forasp{
function father(){
parent::wirtewebname();
}
}
$a = new forasp();//实例化父类
$a->writeurl();//调用自身内容
$b = new cn();
$b->writewebname();//调用父类内容
?>

呼叫靜態方法的時,可以使用::呼叫類別中的靜態方法或屬性。

用法:

雙冒號運算子即作用域限定運算子Scope Resolution Operator可以存取靜態、const和類別中重寫的屬性與方法。

那麼,與箭頭->運算子 在應用上的差異在哪裡?

當在類別的外部存取這些靜態成員、方法和常數時,必須使用類別的名字。
雙冒號範圍解析運算子一般是用在靜態方法、靜態變數的調用,此時類別不需要實例化。
而用箭頭運算子->時,必須要將類別進行實例化(或在類別的內部呼叫也可以)。

以上是php中雙冒號::範圍解析運算子的意義介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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