伙计们,我刚遇到__call()PHP函数。我尝试通过此处的http://php.net/manual/en/language.oop5.overloading.php#object.call手册来了解此用法 但是这里提到的只是
在对象上下文中调用不可访问的方法时,会触发__ call()。
这真的不是很清楚。我尝试在网上寻找其他示例,但它们似乎都很复杂。谁能用一个简单的例子解释__call()是什么,它有什么用?
答案 0 :(得分:4)
考虑一下:
class Foo
{
public function __call($name, $args)
{
echo "you tried to call method $name with these args:";
print_r($args);
}
}
$foo = new Foo();
$foo->bar($args);
请注意,没有名为bar
的方法。通常,调用它会产生错误。但是,在这种情况下,您已经定义了__call()
方法。因此,PHP不会生成错误,而是会调用此方法,并向其传递您尝试调用的方法的名称以及尝试使用其调用的参数。