码迷,mamicode.com
首页 > 其他好文 > 详细

new self() 与 new static() 用法区别

时间:2020-07-06 16:23:06      阅读:45      评论:0      收藏:0      [点我收藏+]

标签:fun   col   用法   代码   相同   turn   style   return   延迟   

new static()是php 5.3添加的延迟静态绑定(后期延迟绑定)功能。
它和new self()的相同点在于都是用来实例化一个类,
但new self()是实例化代码声明时所在的类,
而new static()是实例化调用时所在的类。
 
事例
 
class A
{
    public static function get_self()
    {
        return new self();
    }
    
    public static function get_static()
    {
        return new static();
    }
}

class B extends A
{

};

var_dump(A::get_self());
var_dump(A::get_static());
var_dump(B::get_self());
var_dump(B::get_static());
 
输出

class A#1 (0) {}
class A#1 (0) {}
class A#1 (0) {}
class B#1 (0) {}
 

new self() 与 new static() 用法区别

标签:fun   col   用法   代码   相同   turn   style   return   延迟   

原文地址:https://www.cnblogs.com/double330/p/13254791.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!