- 資訊首頁(yè) > 開(kāi)發(fā)技術(shù) > web開(kāi)發(fā) > JavaScript >
- php類(lèi)中static與self的使用區別淺析
使用 self:: 或者 __CLASS__ 對當前類(lèi)的靜態(tài)引用,取決于定義當前方法所在的類(lèi):
使用 static:: 不再被解析為定義當前方法所在的類(lèi),而是在實(shí)際運行時(shí)計算的。也可以稱(chēng)之為“靜態(tài)綁定”,因為它可以用于(但不限于)靜態(tài)方法的調用。
靜態(tài)綁定是PHP 5.3.0,增加的一個(gè)功能 用于在繼承范圍內引用靜態(tài)調用的類(lèi)
php類(lèi)中static和self的區別,php類(lèi)的定義中經(jīng)常能看到self和static,在運行的時(shí)候經(jīng)常發(fā)現結果并沒(méi)有區別,但是肯定不是沒(méi)有區別,因為沒(méi)有區別為什么會(huì )有兩個(gè)呢?
static采用的是延時(shí)綁定
所以會(huì )導致static能準確知道是父類(lèi)還是子類(lèi)的調用
舉個(gè)例子,這就說(shuō)明static是個(gè)聰明的小朋友,他家里的親戚他都能準確的認識
而self是個(gè)有點(diǎn)笨笨的小朋友,他只認識你自己的父母
由下面代碼可以看出
self指向的是定義他的類(lèi),也就是他只認識自己的父母
static指向的是調用他的類(lèi),也就是他可以認出自己的親戚
<?php class parents { protected static $name = '我是你父母'; public static function who_self() { return self::$name; } public static function who_static() { return static::$name; } public static function get_self() { return new self(); } public static function get_static() { return new static(); } } class kinsfolk extends parents { protected static $name = '我是你親戚'; } var_dump(kinsfolk::who_self()); //我是你父母 var_dump(kinsfolk::who_static()); //我是你親戚 var_dump(kinsfolk::get_self()); //object(parents)#1 (0) {} var_dump(kinsfolk::get_static()); //object(kinsfolk)#1 (0) {}
簡(jiǎn)單通俗的來(lái)說(shuō),
self就是寫(xiě)在哪個(gè)類(lèi)里面, 實(shí)際調用的就是這個(gè)類(lèi).
static代表使用的這個(gè)類(lèi), 就是你在父類(lèi)里寫(xiě)的static,然后被子類(lèi)覆蓋,使用的就是子類(lèi)的方法或屬性
到此這篇關(guān)于php類(lèi)中static與self區別的文章就介紹到這了,更多相關(guān)php類(lèi)static與self區別內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站