如題,php直接用類別名稱呼叫靜態(tài)方法,兩個(gè)問(wèn)題:
1 會(huì)呼叫目前類別的建構(gòu)子嗎?
2 會(huì)呼叫目前類別的父類別的建構(gòu)子嗎?
你應(yīng)該動(dòng)手測(cè)試一下,瀏覽器是最好的老師
實(shí)例一:
class A{
function __construct(){echo"A::構(gòu)造函數(shù)";}
static function myFun(){echo "你好,很高興為你答題!";}
}
A::myFun();
?>
實(shí)例二:
class A{
function __construct(){echo"A::構(gòu)造函數(shù)";}
}
class B extends A{
static function myFun(){echo "你好,很高興為你答題!";}
}
B::myFun();
?>
1.不會(huì)
2.不會(huì)
建構(gòu)方法只在實(shí)例化時(shí)調(diào)用,靜態(tài)方法沒(méi)有實(shí)例生成,不會(huì)調(diào)用建構(gòu)方法
不會(huì)的,只要在一個(gè)類別被實(shí)例化的時(shí)候才會(huì)呼叫其建構(gòu)方法,靜態(tài)方法是儲(chǔ)存在靜態(tài)程式碼區(qū)的,是隨著類別的載入而被載入進(jìn)來(lái)的。