PHP _call()函数的示例

时间:2018-07-12 16:03:59

标签: php

伙计们,我刚遇到__call()PHP函数。我尝试通过此处的http://php.net/manual/en/language.oop5.overloading.php#object.call手册来了解此用法 但是这里提到的只是

  在对象上下文中调用不可访问的方法时,会触发

__ call()。

这真的不是很清楚。我尝试在网上寻找其他示例,但它们似乎都很复杂。谁能用一个简单的例子解释__call()是什么,它有什么用?

1 个答案:

答案 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不会生成错误,而是会调用此方法,并向其传递您尝试调用的方法的名称以及尝试使用其调用的参数。