php中static 和self的使用區別。
首先來看一下self的情況:
<?php
class a
public static function test()
}class b extends a
}a::test();//a
b::test();//a
先來是看一下static的情況:
<?php
class a
public static function test()
}class b extends a
}a::test();//a
b::test();//b
static:如果在子類中重寫了父類中的static方法、屬性,父類就會去訪問了子類的static方法
self: 是類內指標,不管子類有沒有重寫過父類中的方法、屬性都指向本類的靜態方法、屬性
php中self與static的區別
通過一些示例,我們可以很容易看出self和static的區別。假定我們有class car 它有兩個方法,model和getmodel。注意,這裡我們使用了關鍵字self。class car protected static function getmodel 呼叫靜態方法 car model 得到...
php中static和self的區別
在閱讀一些框架的原始碼時發現了new static 和new self 甚是不解,後來查閱資料,才知道static採用了延遲繫結,能準確知道是父類還是子類的呼叫。這就是說static是個聰明的小孩,家裡的親戚的輩分他都能準確的叫出 而不是像他的兄弟self,只知道自己的親爹媽。例子如下 class ...
PHP 中 static 和 self 的區別
使用 self 或者 class 對當前類的靜態引用,取決於定義當前方法所在的類 使用static 不再被解析為定義當前方法所在的類,而是在實際執行時計算的。也可以稱之為 靜態繫結 因為它可以用於 但不限於 靜態方法的呼叫。靜態繫結是php 5.3.0,增加的乙個功能 用於在繼承範圍內引用靜態呼叫的...