天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP中new static()與new self()的區(qū)別異同分析

本文實例講述了php中new static()與new self()的區(qū)別異同,相信對于大家學(xué)習(xí)php程序設(shè)計能夠帶來一定的幫助。

問題的起因是本地搭建一個站。發(fā)現(xiàn)用php 5.2 搭建不起來,站php代碼里面有很多5.3以上的部分,要求更改在5.2下能運行。

改著改著發(fā)現(xiàn)了一個地方

return new static($val);

這尼瑪是神馬,只見過

return new self($val);

于是上網(wǎng)查了下,他們兩個的區(qū)別。

self - 就是這個類,是代碼段里面的這個類。

static - php 5.3加進(jìn)來的只得是當(dāng)前這個類,有點像$this的意思,從堆內(nèi)存中提取出來,訪問的是當(dāng)前實例化的那個類,那么 static 代表的就是那個類。

還是看看老外的專業(yè)解釋吧:

self refers to the same class whose method the new operation takes place in.

static in php 5.3's late static bindings refers to whatever class in the hierarchy which you call the method on.

In the following example, B inherits both methods from A. self is bound to A because it's defined in A's implementation of the first method, whereas static is bound to the called class (also see  get_called_class() ).

class A {  public static function get_self() {    return new self();  }  public static function get_static() {    return new static();  }}class B extends A {}echo get_class(B::get_self()); // Aecho get_class(B::get_static()); // Becho get_class(A::get_static()); // A

這個例子基本上一看就懂了吧。

原理了解了,但是問題還沒有解決,如何解決掉 return new static($val); 這個問題呢?

其實也簡單就是用 get_class($this); 代碼如下:

class A {  public function create1() {    $class = get_class($this);    return new $class();  }  public function create2() {    return new static();  }}class B extends A {}$b = new B();var_dump(get_class($b->create1()), get_class($b->create2()));/*The result string(1) "B"string(1) "B"*/

感興趣的朋友可以動手測試一下示例代碼,相信會有新的收獲!

php技術(shù)PHP中new static()與new self()的區(qū)別異同分析,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲午夜电影 | 九九视频在线观看视频6 | 精品国产乱码久久久久久免费流畅 | 久久青草影院 | 99久久国内精品成人免费 | 无码免费视频AAAAAA片草莓 | 小草视频免费观看在线 | 91区国产福利在线观看午夜 | 2021久久精品免费观看 | 久久精品国产亚洲AV未满十八 | 国产精品久久久久久影院 | 晚夜免费禁用十大亏亏 | 国产a视频视卡在线 | 小小水蜜桃视频高清在线播放 | 日日摸夜夜嗷嗷叫日日拍 | 办公室的秘密2中文字幕 | 国产在线高清视频无码 | 嗯好舒服嗯好大好猛好爽 | 亚洲综合久久一本伊伊区 | 伦理片 a在线线版韩国 | 久久天天综合 | 动漫H片在线观看播放免费 动漫H片在线播放免费高清 | 亚洲精品久久久久AV无码林星阑 | 国模玲玲自拍337p | 强奷乱码欧妇女中文字幕熟女 | 无码欧美喷潮福利XXXX | 国产香蕉视频在线观看 | 婷婷综合亚洲爱久久 | 一本大道手机在线看 | 无码国产成人午夜在线观看不卡 | 黑人BBCVIDEOS极品 | 欧美精品色婷婷五月综合 | 久久综合色一综合色88中文 | 欧美日韩在线成人看片a | 色偷偷av男人的天堂 | 日本漫画无彩翼漫画 | 亚洲一区免费在线观看 | 好湿好滑好硬好爽好深视频 | 十分钟视频影院免费 | 久久中文骚妇内射 | 精品视频在线一区 |