取得 static method 實際上的 caller class type.

edited 十月 2013 in 進階PHP討論
假設有以下的父類別:
class Father {
    public static function temp () {
        //印出實際上呼叫這個 static method 的子類別
        //echo __CLASS__;
        //echo get_class();
    }
}

以及以下的子類別:
class Child extends Father{
}

class AnotherChild extends Father {
}

主程式:
Child::temp();
AnotherChild::temp();

我想做的是,想在呼叫 Child::temp() 時會印出 Child,若是呼叫 AnotherChild::temp() 會印出 AnotherChild。

可是目前我所試的方法,都只能印出 Father 而已,不曉得有沒有什麼比較恰當的方法?

BTW,在 temp 是 object method 的時候我已經試出來了,直接用 get_class() 就可以,不過因為在我的實作裡,temp 比較偏向 class method 而不是 object method,所以這個方法不是很適用。

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=2614

評論

Sign In or Register to comment.