PHP使用靜態(tài)方法的幾個注意事項
本文實例介紹了PHP使用靜態(tài)方法的幾個常見注意事項。分享給大家供大家參考。具體方法如下:
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)其實我錯了,正確的輸出是:
normal_v from TestClass2
STATIC_V from TestClass1
說明:test_func1()雖然是在TestClass1中定義的,但卻是在TestClass2中調(diào)用的,其內(nèi)部的$this變量則是由TestClass2決定的!
其實這兩個類的關(guān)系應(yīng)該屬于"雙向關(guān)聯(lián)".
感興趣的朋友可以測試運行本文實例,相信會有新的收獲!
- 詳談php靜態(tài)方法及普通方法的區(qū)別
- php面向?qū)ο笾衧tatic靜態(tài)屬性和靜態(tài)方法的調(diào)用
- 淺析php靜態(tài)方法與非靜態(tài)方法的用法區(qū)別
- php中類和對象:靜態(tài)屬性、靜態(tài)方法
- 淺談PHP中靜態(tài)方法和非靜態(tài)方法的相互調(diào)用
- PHP靜態(tài)調(diào)用非靜態(tài)方法的應(yīng)用分析
- php 靜態(tài)屬性和靜態(tài)方法區(qū)別詳解
- PHP靜態(tài)方法和靜態(tài)屬性及常量屬性的區(qū)別與介紹
- PHP實現(xiàn)偽靜態(tài)方法匯總
- php之static靜態(tài)屬性與靜態(tài)方法實例分析
- PHP的靜態(tài)方法與普通方法用法實例分析
相關(guān)文章
php中使用key,value,current,next和prev函數(shù)遍歷數(shù)組的方法
這篇文章主要介紹了php中使用key,value,current,next和prev函數(shù)遍歷數(shù)組的方法,較為詳細的分析了php中數(shù)組遍歷的常用技巧與實例用法,需要的朋友可以參考下2015-03-03
php實現(xiàn)將base64格式圖片保存在指定目錄的方法
這篇文章主要介紹了php實現(xiàn)將base64格式圖片保存在指定目錄的方法,涉及php針對圖片文件的傳輸、判定及轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下2016-10-10
Laravel快速入門之composer介紹及安裝詳細圖文步驟
這篇文章主要介紹了Laravel快速入門之composer 介紹以及安裝詳細圖文步驟,圖文步驟講解的很清楚,有對這方面不懂的同學可以研究下2021-01-01
php實現(xiàn)的網(wǎng)頁版剪刀石頭布游戲示例
這篇文章主要介紹了php實現(xiàn)的網(wǎng)頁版剪刀石頭布游戲,涉及php數(shù)組遍歷、比較及隨機數(shù)組調(diào)用相關(guān)操作技巧,需要的朋友可以參考下2016-11-11
jq的get傳參數(shù)在utf-8中亂碼問題的解決php版
在php下用jquery傳參出現(xiàn)亂碼的解決方法2008-07-07

