• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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面向对象程序设计中的self、static、parent关键字用法分析
    • php面向对象程序设计中self与static的区别分析
    • PHP面向对象中new self()与 new static()的区别浅析
    • 浅谈PHP中new self()和new static()的区别
    • PHP Class self 与 static 异同与使用详解
    上一篇:Laravel 微信小程序后端实现用户登录的示例代码
    下一篇:如何在centos8自定义目录安装php7.3
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    PHP的new static和new self的区别与使用 PHP,的,new,static,和,self,区别,