今天在coding的时候,发现了 new static(),觉得实例化的地方不是应该是 new self()吗?查询了一下才知道两者的区别:

1)在有子类集成的时候,两者的表现不一样

2)php 5.2及以下的版本不支持 new static()的语法

简单通俗的来说, self就是写在哪个类里面, 实际调用的就是这个类.所谓的后期静态绑定, static代表使用的这个类, 就是你在父类里写的static,

然后通过子类直接/间接用到了这个static, 这个static指的就是这个子类, 所以说static和$this很像, 但是static可以用于静态方法和属性等.

具体解释如下:

self - 就是这个类,是代码段里面的这个类。

static - PHP 5.3加进来的只得是当前这个类,有点像$this的意思,从堆内存中提取出来,访问的是当前实例化的那个类,那么 static 代表的就是那个类。

还是看看老外的专业解释吧:

self refers to the same class whose method the new operation takes place in.

static in PHP 5.3's late static bindings refers to whatever class in the hierarchy which you call the method on.

In the following example, B inherits both methods from A. self is bound to A because it's defined in A's implementation of the first method, whereas static is bound to the called class (also see get_called_class() ).

上代码:

但是如果想让 子类使用 get_class时,返回的也是 当前子类的名称('wangbaoqiang'),该怎么做呢。

以上所述是小编给大家介绍的PHP中new static()与new self()的比较,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!

原文链接:http://www.cnblogs.com/aiweixiao/archive/2016/08/19/5786973.html

php new static 效率,PHP中new static()与new self()的比较相关推荐

  1. java如何调用static类_Java中的static的使用指南

    一.Java中的static使用之静态变量 1.Java 中被static修饰的成员称为静态成员或类成员.它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享.且优先于对象存在.静态成员可以使 ...

  2. java aio为什么不稳定_为什么我不提倡在Java中使用static

    static从Java1.0开始便是Java中的关键字,用于表征静态属性或方法.它也得到了广泛的应用,在业务中定义XXXUtil是一种常规的模式,甚至是比较知名的类库(比如Apache Common ...

  3. C++与Java中的static成员总结

    简述 在结构化程序设计中,内存中数据的共享是通过参数, 全局变量实现的; 在面向对象程序设计中函数与数据成员封装在一起, 数据共享通过类内部数据成员之间的相互访问, 外部对象则通过静态成员(即stat ...

  4. java中的static类_再议Java中的static关键字

    再议Java中的static关键字 java中的static关键字在很久之前的一篇博文中已经讲到过了,感兴趣的朋友可以参考:<Java中的static关键字解析>. 今天我们再来谈一谈st ...

  5. 面试季,Java中的static关键字解析

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面 ...

  6. Java中的static关键字解析 转载

    原文链接:http://www.cnblogs.com/dolphin0520/p/3799052.html Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到 ...

  7. php中的static,php中的static

    类的方法和属性都是可以用static来声明的,下面举几个例子 class    one(){ public static $para = "1"; public static me ...

  8. php静态方法场景,深入介绍PHP中的static的修饰方法和yield的使用场景

    相信PHP程序员对于生成器并不陌生,但是也有很多人并不知道生成器这个功能,因为它是后期才能大家熟知的,下文是爱站技术频道小编带给大家的深入介绍PHP中的static的修饰方法和yield的使用场景,一 ...

  9. [转] Java中的static关键字解析

    Java中的static关键字解析 static关键字是很多朋友在编写代码和阅读代码时碰到的比较难以理解的一个关键字,也是各大公司的面试官喜欢在面试时问到的知识点之一.下面就先讲述一下static关键 ...

最新文章

  1. 2022-2028年中国异戊二烯橡胶产业竞争现状及发展规模预测报告
  2. 有关C语言指针学习思想的随笔常用形式的总结(原创)
  3. 助力隐私保护,Cashshuffle之后又一支柱Interwallet正式发布
  4. ERROR: glib-2.22 gthread-2.0 is required to compile QEMU
  5. 网站推广方法众多,对此你了解多少?
  6. C#WindowsForm之创建窗体
  7. U3D SCENEMANAGER.LOADSCENE是半异步的
  8. VTK:可视化之ScalarVisibility
  9. hdu 2665 Kth number 划分树
  10. SAP UI5 DatePicker控件和语言设置相关的属性详解
  11. 安卓与ios都是linux,随便来说两句,安卓、IOS不是那么容易被取代的
  12. 网络基础:网络IP 、子网掩码 、路由器 、DNS知识分享
  13. java 蓝桥杯算法训练 P1102
  14. 菜单 optionmenu
  15. 华为机试HJ26:字符串排序
  16. Nginx静态资源POST请求返回405状态
  17. 解决Odoo出现的Unable to send email, please configure the sender's email address or alias.
  18. 戴尔服务器系统还原备份系统,戴尔电脑自带的正版系统恢复你会用吗?
  19. pthread之条件变量pthread_cond_t
  20. 停车还能360全方位影像_新司机轻松,老司机上瘾,中大型SUV都少不了360°全景影像...

热门文章

  1. jQuery的radio,checkbox,select操作
  2. 【计算机网络复习 数据链路层】3.4.1 流量控制与可靠传输机制
  3. volatile关键字解析
  4. 关于考研与工作(人生规划)的个人思考
  5. vscode写java没有提示_VS Code报错Language Support for Java(TM)插件显示需要JDK11 写java代码没有提示...
  6. c语言注释参与程序设计的编译,提高C语言程序设计教学的有益探索
  7. matlab读取其他位置,将文件的数据读取到matlab中,进行编辑,然后将其保存到其他位置...
  8. matplotlib画图设置线条透明度
  9. tf.train.Coordinator和tf.train.start_queue_runners
  10. SIFT算法中概念简单解释