首頁  >  文章  >  後端開發  >  PHP中new static與new self的差別

PHP中new static與new self的差別

WBOY
WBOY原創
2016-08-08 09:22:431025瀏覽

PHP中new static() 與new self()的區別

self:總是指向self程式碼所在類別的本身,無論這個類別被繼承了多少次,self都指向最初使用self的類別;
static:指向使用static的類,只有經由繼承後,才能體現出static存在的意義,否則static和self。

<code><span><span>class</span><span>A</span> {</span><span>public</span><span><span>function</span><span>getStatic</span><span>()</span>{</span><span>return</span><span>new</span><span>static</span>();
    }
    <span>public</span><span><span>function</span><span>getSelf</span><span>()</span>{</span><span>return</span><span>new</span><span>self</span>();
    }
}
<span><span>class</span><span>B</span><span>extends</span><span>A</span>{</span>}
var_dump((<span>new</span> B())->getSelf());<span>//A</span>
var_dump((<span>new</span> B())->getStatic());<span>//B</span></code>

疑問:
1.不知道new static()和new self()有什麼用;
2.如果要使用new self(),為何不使用new A();

以上就介紹了PHP中new static與new self的區別,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn