最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP __call()方法實現(xiàn)委托示例

 更新時間:2019年05月20日 12:16:23   作者:學習筆記666  
這篇文章主要介紹了PHP __call()方法實現(xiàn)委托,簡單介紹了委托的概念、原理,并結(jié)合實例形式分析了__call()方法實現(xiàn)委托的相關(guān)操作技巧,需要的朋友可以參考下

本文實例講述了PHP __call()方法實現(xiàn)委托。分享給大家供大家參考,具體如下:

委托是指一個對象轉(zhuǎn)發(fā)或者委托一個請求給另一個對象,被委托的一方替原先對象處理請求。這類似于繼承,和在子類中調(diào)用父類的方法有點兒相似。

但在繼承時,父類與子類的關(guān)系是固定的,而使用委托則可以在代碼運行時改變使用的對象,這意味著委托比繼承具有更大的靈活性。

1、創(chuàng)建一個類來將Person類的信息格式化并輸出:

class PersonWriter{
 public function writeName(Persion $p){
  print $p->getName()."\n";
 }
 public function writeAge(Persion $p){
  print $p->getAge()."\n";
 }
}

2、下面的代碼集合使用__call()方法和PersonWriter類對象來實現(xiàn)Person類:

class Person {
 private $writer;
 function __construct(PersonWriter $writer;){
  $this->writer = $writer;
 }
 function __call($methodname,$args){
  if(method_exists($this->writer,$methodname)){
   return $this->writer->$methodname($this);
  }
 }
 //...
}

代碼中Person類接收一個PersonWriter對象作為構(gòu)造方法的參數(shù),并將它保持在屬性變量writer。

__call()方法中,使用參數(shù)$methodname,檢查PersonWriter對象中是否存在同名方法。如果相應(yīng)方法存在,我們就委托PersonWriter對象來處理(調(diào)用相應(yīng)方法),把當前類(Person類)的實例作為參數(shù)傳遞給PersonWriter對象(使用$this偽變量)。

因此,如果這樣調(diào)用Person類:

$person = new Person(new PersonWriter());
$person->writeName();

__call()方法會被調(diào)用。然后會在PersonWriter對象中查找writeName()方法,并調(diào)用之。

更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP數(shù)據(jù)結(jié)構(gòu)與算法教程》、《php程序設(shè)計算法總結(jié)》、《php字符串(string)用法總結(jié)》、《PHP數(shù)組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結(jié)》及《PHP數(shù)學運算技巧總結(jié)

希望本文所述對大家PHP程序設(shè)計有所幫助。

相關(guān)文章

  • 一個MYSQL操作類

    一個MYSQL操作類

    一個MYSQL操作類...
    2006-11-11
  • PHP浮點數(shù)精度問題匯總

    PHP浮點數(shù)精度問題匯總

    這篇文章主要介紹了PHP浮點數(shù)精度問題匯總,本文著重探討PHP浮點數(shù)精度損失問題,用三個段落不同的方式講解了這個問題的形成原因以及解決方法,需要的朋友可以參考下
    2015-05-05
  • Discuz Uchome ajaxpost小技巧

    Discuz Uchome ajaxpost小技巧

    discuz的ajaxpost功能有點強大,但缺點也很明顯,如果ajaxpost提交一個FORM,那么返回的時候只能顯示showmessage的內(nèi)容,而不會主動跳轉(zhuǎn),因此這里就有一個小技巧 了。
    2011-01-01
  • php生成圖形驗證碼幾種方法小結(jié)

    php生成圖形驗證碼幾種方法小結(jié)

    生成圖形驗證碼需要使用php GD庫來生成,如果你沒開戶GD庫我們需要在php.ini文件找到extension=php_gd2.dll 去掉前面的;就行了,然后重啟apache 或iis環(huán)境即可
    2013-08-08
  • 提高Laravel應(yīng)用性能方法詳解

    提高Laravel應(yīng)用性能方法詳解

    在本篇文章里小編給大家整理了關(guān)于提高Laravel應(yīng)用性能方法和相關(guān)實例代碼,需要的朋友們學習下。
    2019-06-06
  • php獲取遠程https內(nèi)容時提示PHP Warning: copy(): Unable to find the wrapper “https“ 解決方法

    php獲取遠程https內(nèi)容時提示PHP Warning: copy(): Unable&

    這篇文章主要介紹了php獲取遠程https內(nèi)容時提示PHP Warning: copy(): Unable to find the wrapper “https“ 解決方法,文中通過代碼和圖文給大家講解的了解決方案,具有一定的參考價值,需要的朋友可以參考下
    2024-10-10
  • php獲取字符串中各個字符出現(xiàn)次數(shù)的方法

    php獲取字符串中各個字符出現(xiàn)次數(shù)的方法

    這篇文章主要介紹了php獲取字符串中各個字符出現(xiàn)次數(shù)的方法,實例分析了php獲取字符串中字符出現(xiàn)次數(shù)的三種常見技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • php生成excel文件的簡單方法

    php生成excel文件的簡單方法

    生成excel文件,最簡單的莫過于把數(shù)據(jù)庫的數(shù)據(jù)導入到excel就行了,下面有個不錯的示例,大家可以參考下
    2014-02-02
  • php計算一個文件大小的方法

    php計算一個文件大小的方法

    這篇文章主要介紹了php計算一個文件大小的方法,涉及php操作文件的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • 深入理解用mysql_fetch_row()以數(shù)組的形式返回查詢結(jié)果

    深入理解用mysql_fetch_row()以數(shù)組的形式返回查詢結(jié)果

    本篇文章是對使用mysql_fetch_row()以數(shù)組的形式返回查詢結(jié)果進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06

最新評論

平泉县| 越西县| 晋宁县| 龙陵县| 措勤县| 微山县| 富锦市| 延边| 宁南县| 成安县| 平阴县| 巴里| 太康县| 郓城县| 泸溪县| 康乐县| 吉水县| 布尔津县| 灵山县| 通化市| 祁门县| 应城市| 鲁甸县| 台南县| 上饶市| 新乡县| 南平市| 桂林市| 凉城县| 万山特区| 手游| 六盘水市| 徐州市| 思茅市| 尉氏县| 昭通市| 安图县| 长葛市| 玛曲县| 肃宁县| 侯马市|