代码之家  ›  专栏  ›  技术社区  ›  janoliver

php:在静态方法中获取继承类的名称

  •  1
  • janoliver  · 技术社区  · 15 年前

    好吧,这篇文章的标题可能有点混乱。

    class A {
        public static foo() {
            return get_called_class();
        }
    }
    
    class B extends A {
    
    }
    
    class C {
        public function bar() {
            echo B::foo();
        }
    }
    

    产出:C

    当做 简·奥利弗

    PS:_uuu类uuu,get_u类()不工作。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Community Mohan Dere    8 年前

    在PHP5.3之前,如果没有黑客攻击,这是不可能的,被称为后期静态绑定(latestaticbinding),这是一个可搜索的术语。

    如果您感兴趣,以下是SO文章及其答案: Faking Late Static Binding before php 5.3

        2
  •  0
  •   Sarfraz    15 年前
    推荐文章