成员方法不存在时候自动调用的魔术方法, php 不支持多态, 可以通过 call 实现伪多态.
- <?
- class a{function show(){
- echo 1;
- }
- function call($f,$args){
- echo "__CALL";
- }
- }
- $obj= new a;
- $obj->k();
- ?>
输出 __CALL
也就是说实例化一个对象后, 当调用这个对象的成员方法存在时, 则直接调用其成员方法, 但是当成员方法不存在时, 将转而去调用 call 方法.
同时 call 必须有两个参数, 这个参数名可以随意取, 但是为了方便我们通常取为 $name 和 $args
当成员方法不存在时, call 将被调用, 同时, 这个不存在的方法名称会作为字符串传递给第一个参数 (这里第一个参数是 $name), 将调用时传递的参数作为列表传递给第二个参数 (这里第二个参数是 $args).
来源: http://www.bubuko.com/infodetail-2639708.html