<?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);
转自 https://www.cnblogs.com/php-cn/p/6827086.html