<?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);