如題,php直接用類別名稱呼叫靜態方法,兩個問題:
1 會呼叫目前類別的建構子嗎?
2 會呼叫目前類別的父類別的建構子嗎?
你應該動手測試一下,瀏覽器是最好的老師實例一:class A{
function __construct(){echo"A::构造函数";} static function myFun(){echo "你好,很高兴为你答题!";}
}A::myFun();?>實例二:class A{
function __construct(){echo"A::构造函数";}
}class B extends A{
static function myFun(){echo "你好,很高兴为你答题!";}
}B::myFun();?>
1.不會2.不會
建構方法只在實例化時調用,靜態方法沒有實例生成,不會調用建構方法
不會的,只要在一個類別被實例化的時候才會呼叫其建構方法,靜態方法是儲存在靜態程式碼區的,是隨著類別的載入而被載入進來的。
你應該動手測試一下,瀏覽器是最好的老師
實例一:
class A{
}
A::myFun();
?>
實例二:
class A{
}
class B extends A{
}
B::myFun();
?>
1.不會
2.不會
建構方法只在實例化時調用,靜態方法沒有實例生成,不會調用建構方法
不會的,只要在一個類別被實例化的時候才會呼叫其建構方法,靜態方法是儲存在靜態程式碼區的,是隨著類別的載入而被載入進來的。