PHP靜態延遲繫結 static

2021-09-25 15:04:43 字數 799 閱讀 4289

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是指向...