PHP中new static() 和 new self() 的区别

Posted Burning_Leaf

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中new static() 和 new self() 的区别相关的知识,希望对你有一定的参考价值。

self 指的是self所在的类

new static 实例化的是当前使用的类,有点像$this ,从堆内存中提取出来。

还是通过实例说明一下:

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

 

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

class B extends A {}

echo get_class(B::get_self());  // A
echo get_class(B::get_static()); // B
echo get_class(A::get_static()); // A









以上是关于PHP中new static() 和 new self() 的区别的主要内容,如果未能解决你的问题,请参考以下文章

php new self()和new static()

php new self()和new static()

php -- new self() 和 new static

PHP 的 new static 和 new self

PHP new self()和new static()的区别

php 小知识随手记 new self() 和new static()作用和区别