💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
当调用一个不可访问的方法(如未定义,或不可见)时,__cal()会被调用。比如: ``` <?php /** * User: 三千 * Date: 16/3/16 * Time: 上午11:00 */ class Account{ public function __call($name,$arguments){ switch(count($arguments)){ case 2: echo $arguments[0] * $arguments[1],PHP_EOL; break; case 3: echo array_sum($arguments),PHP_EOL; break; default: echo '参数不对',PHP_EOL; break; } } } $a = new Account(); $a->make(5); $a->make(5,6); ``` 返回结果: ``` % php 1.2.3.php 参数不对 30 ``` 其中$name参数是要调用的方法名称。$arguments参数是一个数组,包含着要传递给方法的参数。 上面代码模拟了其他语言中根据参数类型进行重载。跟__call方法配套的魔术方法是__callStatic。 __call的本意并不是防止调用不存在的方法而报错,而是为了使方法的动态创建变成可能,在MVC框架设计中是很有用的语法。