1. 程式人生 > >[PHP]獲取靜態方法呼叫者的類名和運用call_user_func_array代入物件作用域

[PHP]獲取靜態方法呼叫者的類名和運用call_user_func_array代入物件作用域

一、獲取靜態方法呼叫者的類名

方法一:
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 \n" ;
}
class  foo  {
    function  bar ( $arg ,  $arg2
) { echo __METHOD__ , " got $arg and $arg2 \n" ; } } // 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" )); ?>