发布于 1970-01-01 08:00
  • 2 个回答
    • 简单通俗的来说, self就是写在哪个类里面, 实际调用的就是这个类.所谓的后期静态绑定, static代表使用的这个类, 就是你在父类里写的static, 然后通过子类直接/间接用到了这个static, 这个static指的就是这个子类, 所以说static和$this很像, 但是static可以用于静态方法和属性等.

      举个简单的例子,

      class ATest {
      
          public function say()
          {
              echo 'Segmentfault';
          }
      
          public function callSelf()
          {
              self::say();
          }
      
          public function callStatic()
          {
              static::say();
          }
      }
      
      class BTest extends ATest {
          public function say()
          {
              echo 'PHP';
          }
      }
      
      $b = new BTest();
      $b->say(); // output: php
      $b->callSelf(); // output: segmentfault
      $b->callStatic(); // output: php
      

      就是这个样纸~

      2022-12-01 21:12 回答
    • 类似于self但是static关键字可以用于后期静态绑定。参考:http://php.net/manual/zh/language.oop5.late-static-bindings.php

      2022-12-01 21:12 回答
    撰写答案
    今天,你开发时遇到什么问题呢?
    立即提问
    PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有