《PHP教程:PHP使用靜態(tài)方法的幾個(gè)注意事項(xiàng)》要點(diǎn):
本文介紹了PHP教程:PHP使用靜態(tài)方法的幾個(gè)注意事項(xiàng),希望對(duì)您有用。如果有疑問,可以聯(lián)系我們。
本文實(shí)例介紹了PHP使用靜態(tài)辦法的幾個(gè)常見注意事項(xiàng).分享給大家供大家參考.具體辦法如下:PHP教程
1. 即使類中的辦法并未用static聲明,但其未使用到可改變的類成員變量,在外部仍可用操作符::來調(diào)用;PHP教程
2. 以靜態(tài)方式(用::操作符)調(diào)用的辦法中$this的取值是由調(diào)用時(shí)的上下文決定的!而不是定義他的類!!PHP教程
例如以下的代碼:PHP教程
<?php class TestClass1 { public $normal_v = 'normal_v from TestClass1'; public static $STATIC_V = 'STATIC_V from TestClass1'; public function test_func1() { echo $this->normal_v.'<br />'.self::$STATIC_V; } } class TestClass2 { public $normal_v = 'normal_v from TestClass2'; public static $STATIC_V = 'STATIC_V from TestClass2'; public function test_func2() { TestClass1::test_func1(); } } $t2 = new TestClass2(); $t2->test_func2();
這段代碼是輸出會(huì)是什么呢,我原以為會(huì)是normal_v from TestClass1 <br /> STATIC_V from TestClass1,測(cè)試發(fā)現(xiàn)其實(shí)我錯(cuò)了,正確的輸出是:PHP教程
normal_v from TestClass2
STATIC_V from TestClass1PHP教程
闡明:test_func1()雖然是在TestClass1中定義的,但卻是在TestClass2中調(diào)用的,其內(nèi)部的$this變量則是由TestClass2決定的!PHP教程
其實(shí)這兩個(gè)類的關(guān)系應(yīng)該屬于"雙向聯(lián)系關(guān)系".PHP教程
感興趣的朋友可以測(cè)試運(yùn)行本文實(shí)例,相信會(huì)有新的勞績!PHP教程
《PHP教程:PHP使用靜態(tài)方法的幾個(gè)注意事項(xiàng)》是否對(duì)您有啟發(fā),歡迎查看更多與《PHP教程:PHP使用靜態(tài)方法的幾個(gè)注意事項(xiàng)》相關(guān)教程,學(xué)精學(xué)透。維易PHP學(xué)院為您提供精彩教程。
轉(zhuǎn)載請(qǐng)注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/14715.html