中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中static和self調用靜態方法區別

發布時間:2020-08-16 02:02:28 來源:網絡 閱讀:7575 作者:china_lx1 欄目:開發技術

由于看到框架里面經常使用static::method() 于是稍微了解下static和self的區別

廢話少說,直接上代碼

class Father
{
	public function __construct()
	{
		$this->init();
		
		self::test();
	}

	public static function test()
	{
		echo "father test....<br>";
	}

	public function init()
	{
		echo 'father init...<br>';
	}
}

class Son extends Father
{
	public function init()
	{
		echo 'son init..<br>';
	}

	public static function test()
	{
		echo "son test..<br>";
	}
}

$son_obj = new Son();


顯示結果:

son init..
father test....


分析結果看,調用init非靜態方法已經被子類覆蓋了,但使用self調用靜態方法還是使用的是父類的test靜態方法

于是我們將代碼修改成static

class Father
{
	public function __construct()
	{
		$this->init();
		
		static::test();
	}

	public static function test()
	{
		echo "father test....<br>";
	}

	public function init()
	{
		echo 'father init...<br>';
	}
}

class Son extends Father
{
	public function init()
	{
		echo 'son init..<br>';
	}

	public static function test()
	{
		echo "son test..<br>";
	}
}

$son_obj = new Son();


出現的結果是:

son init..
son test..


使用static調用靜態方法使用了當前分類的靜態方法

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绍兴县| 湖北省| 阿拉善盟| 静海县| 东明县| 铅山县| 彭泽县| 吉水县| 额济纳旗| 三河市| 陆川县| 新蔡县| 双辽市| 嵩明县| 怀宁县| 黄陵县| 克山县| 麟游县| 山阴县| 西峡县| 同心县| 莲花县| 巫山县| 满城县| 阳原县| 融水| 河北区| 斗六市| 通道| 绿春县| 古蔺县| 灵川县| 朔州市| 丹寨县| 常山县| 和顺县| 巫山县| 新建县| 屏东市| 休宁县| 三台县|