一、获取静态方法调用者的类名
方法一: class foo { static public function test() { var_dump(get_called_class()); } } class bar extends foo { } foo::test(); bar::test(); 输出: string(3) "foo" string(3) "bar" 方法二: class Bar { public static function test() { var_dump(static::class); } } class Foo extends Bar { } Foo::test(); Bar::test(); Output: string(3) "Foo" string(3) "Bar"
二、运用call_user_func_array代入对象作用域
<?php function foobar ( $arg , $arg2 ) { echo __FUNCTION__ , " got $arg and $arg2 " ; } class foo { function bar ( $arg , $arg2 ) { echo __METHOD__ , " got $arg and $arg2 " ; } } // Call the foobar() function with 2 arguments call_user_func_array ( "foobar" , array( "one" , "two" )); // Call the $foo->bar() method with 2 arguments $foo = new foo ; call_user_func_array (array( $foo , "bar" ), array( "three" , "four" )); ?>