pykend
pykend
发布于 2周前

php 后期延迟静态绑定

xxxx::getStatic() 调用的时候才知道返回的是谁 xxxx::getSelf() 在哪个类里写着就返回那个类

代码:

class A {
    public static function self() {
        return new self();
    }

    public static function static() {
        return new static();
    }
}

class B extends A {}

echo get_class(A::self())."\n"; // A
echo get_class(A::static())."\n"; // A
echo get_class(B::self())."\n"; // A
echo get_class(B::static())."\n"; // B 后期静态绑定

输出:

A
A
A
B