最后,若谈及不存在的成员,当调用不存在的方法时,__call函数被调用。以我的经验而言,这个方法使用相对较少,但代码清单1-5就是一个小例子,以便举例说明__call的使用。
代码清单1-5 当调用一个不存在的方法时,__call函数被调用
<?php
# __call方法使用示范
class test2 {
function __call($name, $argv) {
print "name:$name\n";
foreach ($argv as $a) {
print "\t$a\n";
}
}
}
$x = new test2();
$x->non_existing_method(1, 2, 3);
?>
当执行时,这个脚本将产生下面的结果。
name:non_existing_method
1
2
3
虽然non_existing_method方法没有定义,但还是成功调用了__call函数。