__call()和__callStatic()實例詳解


<?php
class Demo
{
  //第一個參數是方法名,第二個參數是方法參數,以數組形式傳入
  public function __call($method,$args)
  {
    //遍歷參數$args
    $var = '';
    foreach ($args as $value){
      $var .= $value.',';// .= 字符串的連接運算
    }
    return '方法是'.$method.'('.$var.')'.'不存在';
  }
  //當我們調用一個不存在的靜態方法時,會自動調用 __callStatic()
  public static function __callStatic($method,$args)
  {
    //遍歷參數$args
    $var = '';
    foreach ($args as $value){
      $var .= $value.',';// .= 字符串的連接運算
    }
    return '靜態方法是'.$method.'('.$var.')'.'不存在';
  }

}
//當訪問一個不存在的非靜態方法時,自動調用類中的魔術方法:__call()
echo (new Demo)->hello('php','python');
echo '<hr>';
//當訪問一個不存在的靜態方法時,自動調用類中的魔術方法:__callStatic()
echo Demo::hello(10,20,30);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM