教程集 www.jiaochengji.com
教程集 >  脚本编程  >  php  >  正文 PHP 的 new static 和 new self

PHP 的 new static 和 new self

发布时间:2020-11-07   编辑:jiaochengji.com
教程集为您提供PHP 的 new static 和 new self等资源,欢迎您收藏本站,我们将为您提供最新的PHP 的 new static 和 new self资源
下面我们举个栗子:

class Father {
    public static function getSelf() {
        return new self();
    }
    public static function getStatic() {
        return new static();
    }
}
class Son extends Father {}
echo get_class(Son::getSelf()); // Father
echo get_class(Son::getStatic()); // Son
echo get_class(Father::getSelf()); // Father
echo get_class(Father::getStatic()); // Father

new self

这里面注意这一行 get_class(Son::getStatic()); 返回的是 Son 这个 class, 可以总结如下:

self 返回的是 new self 中关键字 new 所在的类中,比如这里例子的 :

public static function getSelf() {
    return new self(); // new 关键字在 Father 这里
}

始终返回 Father。

new static

static 则上面的基础上,更聪明一点点:static 会返回执行 new static() 的类,比如 Son 执行 get_class(Son::getStatic()) 返回的是 Son, Father 执行 get_class(Father::getStatic()) 返回的是 Father

而在没有继承的情况下,可以认为 new self 和 new static 是返回相同的结果。

以上就是PHP 的 new static 和 new self的详细内容,更多请关注教程集其它相关文章!

  • 本文转载于:dmzfa,如有侵犯,请联系jquerycn@qq.com删除
  • 您可能感兴趣的文章:
    PHP 的 new static 和 new self
    PHP面向对象中new self( )和 new static( ) 的区别
    详解PHP的self关键字
    php中new self()关键字的用法
    关于PHP中self关键字的用法详解
    分分钟搞定PHP的self关键字
    了解PHP中self关键字的相关知识
    理解php5中static和const关键字用法
    PHP保留类及特殊类
    详解 PHP 中的三大经典模式

    [关闭]
    ~ ~