php >=5.3
1, $this永遠代表所在類的物件?不是
2, self用於代表所在類麼?
是,永遠代表所在類的物件!
看邏輯:
class p', got 'eof' at end of input: … echo self::where;}}
class c extends p
echo p::saywhere();//aaa
echo c::saywhere();//aaa
顯然,當前的邏輯不是十分完善!
此時,應該是表示當前類的關鍵字,最好應該在呼叫時決定最好!(self不能做到)
此時,採用乙個新的關鍵字,代表當前類,與self不同,在於是 執行時呼叫時決定,而不是在類編譯時就確定好了的!
class p', got 'eof' at end of input: … echo self::where;
}public static function sayw()
}class c extends p
echo p::saywhere();//aaa
echo c::saywhere();//aaa
echo p::sayw();//aaa
echo c::sayw();//bbb
總結:static關鍵字的功能:
1, 宣告靜態區域性變數
2, 宣告靜態成員
3, 當前類,執行時的當前類!
類中,可以表示類的關鍵字:
self,所在類
static,呼叫類
parent,父類
PHP 延遲靜態繫結 功能,static
php 延遲靜態繫結 功能,static 從這個名字的定義提取出兩個關鍵點,第一點靜態,也就是說這個功能只適用於靜態屬性或靜態方法。第二點延遲繫結,這個根據下面 就可以很好的理解 看一下這個例子 class a static function fun class b extendsa obj new...
PHP的延遲靜態繫結 static
在舊版php中返回本類的乙個例項使用的return new self 但是這個方法有很大的弊端,就是self指的是解析上下文而不是呼叫的上下文。abstract class father class son1 extends father son1 create 也就是說上述 中子類呼叫create...
PHP延遲靜態繫結
1 self用法 self是指向定義它的當前類的指標。當前類 current class class person 獲取年齡 public static function getage 輸出 self name i am person self age 18 2 static用法 static是指向...