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

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

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

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

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

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

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對象作為構造方法的參數(shù),并將它保持在屬性變量writer。

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

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

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

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

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

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

相關文章

  • 一個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)容,而不會主動跳轉,因此這里就有一個小技巧 了。
    2011-01-01
  • php生成圖形驗證碼幾種方法小結

    php生成圖形驗證碼幾種方法小結

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

    提高Laravel應用性能方法詳解

    在本篇文章里小編給大家整理了關于提高Laravel應用性能方法和相關實例代碼,需要的朋友們學習下。
    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ù)組的形式返回查詢結果

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

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

最新評論

荥阳市| 丰城市| 姜堰市| 南阳市| 革吉县| 韶关市| 新闻| 久治县| 普兰店市| 教育| 尤溪县| 滨海县| 酒泉市| 巴彦淖尔市| 桂平市| 贵溪市| 巴青县| 太保市| 西平县| 东宁县| 仙桃市| 延安市| 三门县| 甘肃省| 喀喇沁旗| 安陆市| 平利县| 济宁市| 宜良县| 城固县| 无极县| 永和县| 马龙县| 宣汉县| 施秉县| 图木舒克市| 宜城市| 永川市| 水城县| 玛纳斯县| 平顺县|