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