PHP new self()和new static()的區別
new static()是php5.3以後引入新的特性,延遲靜態繫結.訪問的是當前例項化的那個類,那麼 static 代表的就是那個類。
new self() 是指的不是呼叫上下文,它指的是解析上下文.
class Test {
public static funtion getSelf(){
return new self();
}
public static funtion getStatic(){
return new static();
}
}
class Test1 extends Test {
}
echo get_class(Test1 ::getSelf); 輸出:Test
echo get_class(Test1 ::getStatic);輸出:Test1
echo get_class(Test ::getStatic);輸出:Test
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4822/viewspace-2810142/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- PHP中new static()與new self()的區別異同分析PHP
- PHP 的 new static 和 new self 具體有什麼?PHP
- new self()與new static()
- new static ,new self ,self::, $this的一些理解
- PHP 中 bind 的用法 self 和 static 的區別PHP
- malloc和new的區別,new和operator new的區別,分配器介紹
- self::class和static::class的區別
- C++ new A 和 new A() 的區別詳解C++
- JavaScript中的new map()和new set()使用詳細(new map()和new set()的區別)JavaScript
- new 和 malloc 的區別
- new和malloc的區別
- PHP中 new clone __clone區別PHP
- Golang make和new的區別Golang
- new 和 malloc 的區別 及使用
- __new__和__init__的區別
- newInstance和new的區別(good)Go
- 簡單易懂 —— this、self、static 的區別
- PHP static 關鍵字和 self 關鍵字例項化的區別PHP
- malloc/free 和 new /delete 的區別 (轉)delete
- __new()__ 與 __init()__的區別
- &self 和 self 的區別
- 【C++】C++用new和不用new建立類物件區別C++物件
- Python __new__ 和 __init__ 的區別Python
- 細說new和malloc的十大區別
- malloc free與new delete的區別和聯絡delete
- 【JAVA】Class.forName用法以及和new的區別Java
- Go 語言 new 和 make 關鍵字的區別Go
- 【學習筆記】make 和 new 關鍵字的區別筆記
- Golang make和new的區別及實現原理詳解Golang
- Python面試之理解__new__和__init__的區別Python面試
- new/delete 和malloc/free 的區別一般彙總delete
- 構造器引用和直接用new建立物件區別物件
- static 和extern的區別
- Python中__new__和__init__的區別與聯絡Python
- 理解new和實現一個new
- Go 中 make 與 new 的區別是什麼?Go
- C++中new與malloc的10點區別C++
- String s = “hello“和String s = new String(“hello“)的區別