在阅读一些框架的源码时发现了new static(),和new self(),甚是不解,后来查阅资料,才知道static采用了延迟绑定,能准确知道是父类还是子类的调用。这就是说static是个聪明的小孩,家里的亲戚的辈分他都能准确的叫出;而不是像他的兄弟self,只知道自己的亲爹妈。

例子如下:

<?php

class Father{
protected static $name = "father";
public static function whoami_self(){
echo self::$name."\n";
} public static function whoami_static(){
echo static::$name."\n";
} public static function getInstance_self(){
return new self();
} public static function getInstance_static(){
return new static();
}
} class FatherBrother extends Father{
protected static $name = "uncle";
} FatherBrother::whoami_self(); //father
FatherBrother::whoami_static(); //uncle
var_dump(FatherBrother::getInstance_self()); //father
var_dump(var_dump(FatherBrother::getInstance_static())); //uncle

最新文章

  1. sqlserver 2008 孤立用户解决方法
  2. Java使用正则表达式解析LRC歌词文件
  3. poj 1611:The Suspects(并查集,经典题)
  4. php统计字数函数
  5. linux下用户以及用户组管理
  6. 类linux 系统iptables 系统初始化配置
  7. 网站开发常用jQuery插件总结(二)弹出层插件Lightbox
  8. JsSIP.UA.JsSIP 总是返回错误:422 Session Interval Too Small
  9. ASP.NET MVC5(二):控制器、视图与模型
  10. Tomcat服务器如何读取本地磁盘数据?
  11. AtCoder Regular Contest 082
  12. 深入理解Redux
  13. Django 基础一(安装和启动)
  14. [HTML]将错误alert出来[转]
  15. ECharts常用设置记录
  16. 算法题:合并N个长度为L的有序数组为一个有序数组(JAVA实现)
  17. JAVA 的输入与输出流当中,什么时候该使用字符流?什么时候该使用字节流?
  18. 【洛谷】【搜索+剪枝】P1731 [NOI1999]生日蛋糕
  19. AndroidStudio_ListView
  20. fit_transform和transform的区别

热门文章

  1. 【Java并发核心三】CountDownLatch、CyclicBarrier及Phaser
  2. 电脑时间显示秒 win10电脑显示农历
  3. 专业方向系列-00-Python与有限元初探
  4. 乐迪AT9
  5. 通俗讲解 异步,非阻塞和 IO 复用
  6. Python 中的垃圾回收机制--备忘
  7. Android MediaPlayer架构 -- MediaPlayer的创建过程
  8. Java全栈程序员之01:做个Linux下的程序猿
  9. Miscellaneos:ISV
  10. Kubernetes 编排系统