欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP new static 和 new self詳解

 更新時(shí)間:2017年02月19日 16:49:50   投稿:hebedich  
使用 self:: 或者 __CLASS__ 對(duì)當(dāng)前類的靜態(tài)引用,取決于定義當(dāng)前方法所在的類:使用 static:: 不再被解析為定義當(dāng)前方法所在的類,而是在實(shí)際運(yùn)行時(shí)計(jì)算的。也可以稱之為“靜態(tài)綁定”,因?yàn)樗梢杂糜冢ǖ幌抻冢╈o態(tài)方法的調(diào)用。

最近在一個(gè)視頻的評(píng)論被問到一個(gè)小問題:這里選擇用static 而不是self有特殊的考慮么?或者我們可以這樣轉(zhuǎn)換一下問題:

PHP 的 new static 和 new self 具體有什么?

其實(shí)這個(gè)來看一個(gè)例子應(yīng)該就很清晰了:

class Father {

 public static function getSelf() {
  return new self();
 }

 public static function getStatic() {
  return new static();
 }
}

class Son extends Father {}

echo get_class(Son::getSelf()); // Father
echo get_class(Son::getStatic()); // Son
echo get_class(Father::getSelf()); // Father
echo get_class(Father::getStatic()); // Father

這里面注意這一行 get_class(Son::getStatic()); 返回的是 Son 這個(gè) class,可以總結(jié)如下:

new self

1.self返回的是 new self 中關(guān)鍵字 new 所在的類中,比如這里例子的 :

public static function getSelf() {
  return new self(); // new 關(guān)鍵字在 Father 這里
 }

始終返回 Father。

new static

2.static 則上面的基礎(chǔ)上,更聰明一點(diǎn)點(diǎn):static 會(huì)返回執(zhí)行 new static() 的類,比如 Son 執(zhí)行 get_class(Son::getStatic()) 返回的是 Son, Father 執(zhí)行 get_class(Father::getStatic()) 返回的是 Father

而在沒有繼承的情況下,可以認(rèn)為 new selfnew static是返回相同的結(jié)果。

Tips: 可以用一個(gè)好的 IDE 來直接看注釋。比如 PhpStorm:

Happy Hacking

相關(guān)文章

  • php 無限極分類

    php 無限極分類

    至于添加刪除之類的功能我就不多寫了!仔細(xì)看看就知道這么用了. 難的是顯示方面 希望高手?jǐn)U展一下! 這是類
    2008-03-03
  • php查詢類的方法總結(jié)

    php查詢類的方法總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于php查詢類的方法總結(jié)內(nèi)容,對(duì)此有興趣的朋友們可以跟著學(xué)習(xí)下。
    2022-01-01
  • 啟用Csrf后POST數(shù)據(jù)時(shí)出現(xiàn)的400錯(cuò)誤

    啟用Csrf后POST數(shù)據(jù)時(shí)出現(xiàn)的400錯(cuò)誤

    這篇文章主要介紹了啟用Csrf后POST數(shù)據(jù)時(shí)出現(xiàn)的400錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下
    2015-07-07
  • PHP+MariaDB數(shù)據(jù)庫(kù)操作基本技巧備忘總結(jié)

    PHP+MariaDB數(shù)據(jù)庫(kù)操作基本技巧備忘總結(jié)

    這篇文章主要介紹了PHP+MariaDB數(shù)據(jù)庫(kù)操作基本技巧,結(jié)合實(shí)例形式總結(jié)分析了PHP+MariaDB數(shù)據(jù)庫(kù)連接、判斷以及基于PHP+MariaDB的用戶登陸、管理、刪除等相關(guān)操作實(shí)現(xiàn)技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • phpmyadmin的#1251問題

    phpmyadmin的#1251問題

    phpmyadmin的#1251問題...
    2006-11-11
  • PHP 加密解密內(nèi)部算法

    PHP 加密解密內(nèi)部算法

    最近學(xué)習(xí)URL跳轉(zhuǎn)的時(shí)候新進(jìn)三個(gè)超好用的PHP加密解密函數(shù),貌似是discuz里的…使用這些加密解密的原因是因?yàn)橛袝r(shí)自己的URL地址被人獲取以后想破解你里面?zhèn)髦档膬?nèi)容就必須知道你的key,沒有key,他應(yīng)該要破了一陣子才能知道你URL里面的內(nèi)容吧。
    2010-04-04
  • PHP中iconv函數(shù)知識(shí)匯總

    PHP中iconv函數(shù)知識(shí)匯總

    iconv函數(shù)庫(kù)能夠完成各種字符集間的轉(zhuǎn)換,是php編程中不可缺少的基礎(chǔ)函數(shù)庫(kù)。本文內(nèi)容是參考了網(wǎng)上的其他資源,然后結(jié)合自己的實(shí)踐,有需要的小伙伴可以參考下。
    2015-07-07
  • PHP類的封裝與繼承詳解

    PHP類的封裝與繼承詳解

    類是面向?qū)ο笾械闹匾拍?,而封裝和繼承是面向?qū)ο蟮闹匾攸c(diǎn)。這篇文章我們就重點(diǎn)討論一下封裝、繼承這兩個(gè)特點(diǎn),給出一些列子,供大家學(xué)習(xí)參考。
    2015-09-09
  • 如何在symfony中導(dǎo)出為CSV文件中的數(shù)據(jù)

    如何在symfony中導(dǎo)出為CSV文件中的數(shù)據(jù)

    如果您需要在symfony中將數(shù)據(jù)庫(kù)中的數(shù)據(jù)導(dǎo)出為CSV文件,試試這個(gè)
    2011-10-10
  • php數(shù)組操作之鍵名比較與差集、交集賦值的方法

    php數(shù)組操作之鍵名比較與差集、交集賦值的方法

    這篇文章主要介紹了php數(shù)組操作之鍵名比較與差集、交集賦值的方法,涉及PHP針對(duì)數(shù)組的各種常見操作,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-11-11

最新評(píng)論