成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? PHP new static 和 new self詳解
全站頭部文字 我要出現在這里
PHP new static 和 new self詳解 688 2024-01-10   

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

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

其實這個來看一個例子應該就很清晰了:

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,可以總結如下:

new self

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

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

始終返回 Father。

new static

2.static 則上面的基礎上,更聰明一點點:static 會返回執行 new static() 的類,比如 Son 執行 get_class(Son::getStatic()) 返回的是 Son, Father 執行 get_class(Father::getStatic()) 返回的是 Father

而在沒有繼承的情況下,可以認為 new self 和 new static是返回相同的結果。

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

查看圖片

Happy Hacking



主站蜘蛛池模板: 男人不可以穷演员表| 高慧君| 搜狐网站官网| 马路虫子图片| 妖猫传票房| 卡通频道| 国考岗位| 影子人| 美国派7| 白洁少妇董汐星空传媒影视| 都市频道在线直播| 当代大学德语2答案| mc水观音| 清风亭全集豫剧全场免费播放| 送元二使安西课堂笔记| 变形金刚2演员表| 小丑2双重疯狂免费播放在线观看| 七上语文背诵清单表| 合作协议书合同| 檀健次壁纸| alurajenson主演的电影| 欧美变态sososo另类| 电影《森林》| 马玉琴20岁照片| 艳窟神探| 陈慕义| 醉翁亭记理解性默写及答案| 免费看黄在线看| 恶行之外电影完整播放| 文琪演过的电视剧有哪些| 慈禧向十一国宣战台词| 月亮电影| 德鲁| 性视频免费| 嗯啊不要啊啊| 蔡贞安| 新红楼梦惊艳版| bustybuffy| 陷入纯情| 双缝干涉实验条纹间距公式| 壁纸纯欲天花板|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103