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

    赞赏作者

    微信交流

  • 相关阅读:
    烂泥:高负载均衡学习haproxy之TCP应用
    烂泥:高负载均衡学习haproxy之关键词介绍
    sqlpuls基本命令
    Oracle开机自启动
    centos6.5安装oracle11g_2
    centos7安装图片界面
    centos7安装activemq
    centos7删除自带openjdk
    centos7安装nexus私服2.14
    mysql优化记录
  • 原文地址:https://www.cnblogs.com/taoshihan/p/15094309.html
Copyright © 2011-2022 走看看