最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP new static 和 new self詳解

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

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

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

其實(shí)這個來看一個例子應(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 這個 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 會返回執(zhí)行 new static() 的類,比如 Son 執(zhí)行 get_class(Son::getStatic()) 返回的是 Son, Father 執(zhí)行 get_class(Father::getStatic()) 返回的是 Father

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

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

Happy Hacking

相關(guān)文章

最新評論

通辽市| 酒泉市| 璧山县| 聊城市| 康马县| 镇江市| 永仁县| 五常市| 宁晋县| 万山特区| 都江堰市| 永清县| 紫金县| 冷水江市| 达州市| 文水县| 土默特左旗| 杭锦后旗| 博兴县| 延寿县| 平陆县| 淮北市| 饶河县| 宜城市| 金寨县| 灵石县| 剑阁县| 亚东县| 古蔺县| 如东县| 赫章县| 壤塘县| 东乌珠穆沁旗| 桦川县| 格尔木市| 镶黄旗| 泸西县| 彝良县| 罗源县| 林甸县| 阳江市|