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