手机用户2502863305 发布于 2017-05-17 00:19
php
public static function findIdentityByAccessToken($token, $type = null) { foreach (self::$users as $user) { if ($user['accessToken'] === $token) { return new static($user); } } return null; }

这个new static($user);是个啥意思呀??

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
    

    就是这个样纸~

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

    2017-05-17 06:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
活跃用户
  • 1
    问道摩托
  • 2
    袁广龙976丶
  • 3
    逍遥子
  • 4
    亮仔
  • 5
    芙蓉花
  • 6
    作小die_syj
  • 7
    王丽珠景平怡伦_621
  • 8
    CH_Double_C
  • 9
    adfa3sd5f6a
  • 10
    欣欣大妮
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有