萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> php編程 >> PHP使用靜態方法的幾個注意事項

PHP使用靜態方法的幾個注意事項

 本文實例介紹了PHP使用靜態方法的幾個常見注意事項。分享給大家供大家參考。具體方法如下:

1. 即使類中的方法並未用static聲明,但其未使用到可改變的類成員變量,在外部仍可用操作符::來調用;

2. 以靜態方式(用::操作符)調用的方法中$this的取值是由調用時的上下文決定的!而不是定義他的類!!

例如以下的代碼:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <?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();

這段代碼是輸出會是什麼呢,我原以為會是normal_v from TestClass1 <br /> STATIC_V from TestClass1,測試發現其實我錯了,正確的輸出是:

normal_v from TestClass2
STATIC_V from TestClass1

說明:test_func1()雖然是在TestClass1中定義的,但卻是在TestClass2中調用的,其內部的$this變量則是由TestClass2決定的!

其實這兩個類的關系應該屬於"雙向關聯".

感興趣的朋友可以測試運行本文實例,相信會有新的收獲!

copyright © 萬盛學電腦網 all rights reserved