php __call and __callStatic
PHP5?的对象新增了一个专用方法?__call(),这个方法用来监视一个对象中的其它方法。如果你试着调用一个对象中不存在的方法,__call?方法将会被自动调用。
?
__call()?is triggered when invoking inaccessible methods in an object context. __callStatic()?is triggered when invoking inaccessible methods in a static context.
?
<?php
class?MethodTest?{
????public?function?__call($name,?$arguments)?{
????????//?Note:?value?of?$name?is?case?sensitive.
????????echo?"Calling?object?method?'$name'?"
?????????????.?implode(',?',?$arguments).?"\n";
????}
????/**??As?of?PHP?5.3.0??*/
????public?static?function?__callStatic($name,?$arguments)?{
????????//?Note:?value?of?$name?is?case?sensitive.
????????echo?"Calling?static?method?'$name'?"
?????????????.?implode(',?',?$arguments).?"\n";
????}
}
$obj?=?new?MethodTest;
$obj->runTest('in?object?context');
MethodTest::runTest('in?static?context');??//?As?of?PHP?5.3.0
?>