zoukankan      html  css  js  c++  java
  • [PHP] new static()和new self()的区别

    当只有一个类,没有任何继承关系的时候,这俩是一样的,也就是返回当前类的实例对象

    当存在继承关系的时候,两者有区别

    比如 new self在父类里,调用的时候会返回当前这个类的实例对象

    比如 new static在父类里,调用的时候会返回根据当前调用类,返回当前调用类的实例对象

    <?php
    
    namespace TestsUnit;
    use TestsTestCase;
    
    class StaticTest extends TestCase
    {
        public function testNewStatic(){
            $a=Son::getSelf();
            $b=Son::getStatic();
            var_dump($a,$b);
            $this->assertTrue(true);
        }
    }
    class Father {
        public static function getSelf() {
            return new self();
        }
        public static function getStatic() {
            return new static();
        }
    }
    class Son extends Father {}

     都是使用Son类调用,self那个返回的Father的对象 ,static是Son的对象

    开源作品

    GO-FLY,一套可私有化部署的免费开源客服系统,安装过程不超过五分钟(超过你打我 !),基于Golang开发,二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的网页在线客服系统,致力于帮助广大开发者/中小站长快速整合私有客服功能
    github地址:go-fly
    官网地址:https://gofly.sopans.com

    赞赏作者

    微信交流

  • 相关阅读:
    TensorFlow conv2d实现卷积
    tensorflow max_pool(最大池化)应用
    tensorflow Relu激活函数
    tensorflow Sigmoid 应用
    tensorflow softmax应用
    并发和并行的区别
    eclipse常用快捷键即项目操作
    zookeeper学习一
    TCP的三次握手与四次挥手
    python编码问题unicode&str
  • 原文地址:https://www.cnblogs.com/taoshihan/p/15094309.html
Copyright © 2011-2022 走看看