php __call と __callStatic
PHP5? オブジェクトには、オブジェクト内の他のメソッドを監視するために使用される新しい特別なメソッド?__call() があります。オブジェクトに存在しないメソッドを呼び出そうとすると、__call? メソッドが自動的に呼び出されます。
?
__call()? は、オブジェクト コンテキストでアクセスできないメソッドを呼び出すときにトリガーされます。 __callStatic()? は、静的コンテキストでアクセスできないメソッドを呼び出すときにトリガーされます。
?
class?MethodTest?{
????public?function? __call($name,?$arguments)?{
???????//?注:?$name の値?大文字と小文字が区別されます。
?????? echo?"呼び出し?オブジェクト?メソッド?'$name'?"
???????????????.?内破(',?',?$arguments ).?"n";
????}
????/**??PHP?5.3.0以降??* /
????public?static?function?__callStatic($name,? $arguments)?{
???????//?注:?$name は?case?
??????echo?"?static?method を呼び出していますか?'$name '?"
????????????.?内破( ',?' ,?$arguments).?"n";
??}
}
$obj?=?new?MethodTest;
$obj ->runTest('in?object?context') ;
MethodTest::runTest('in?static?context'); ??//?As?of?PHP?5.3.0
?>