本文實(shí)例介紹了php使用靜態(tài)方法的幾個常見注意事項(xiàng)。分享給大家供大家參考。具體方法如下:
1. 即使類中的方法并未用static聲明,但其未使用到可改變的類成員變量,在外部仍可用操作符::來調(diào)用;
2. 以靜態(tài)方式(用::操作符)調(diào)用的方法中$this的取值是由調(diào)用時的上下文決定的!而不是定義他的類!!
例如以下的代碼:
<?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,測試發(fā)現(xiàn)其實(shí)我錯了,正確的輸出是:
normal_v from testclass2
static_v from testclass1
說明:test_func1()雖然是在testclass1中定義的,但卻是在testclass2中調(diào)用的,其內(nèi)部的$this變量則是由testclass2決定的!
其實(shí)這兩個類的關(guān)系應(yīng)該屬于雙向關(guān)聯(lián).
感興趣的朋友可以測試運(yùn)行本文實(shí)例,相信會有新的收獲!
更多信息請查看IT技術(shù)專欄