php中static和self的区别
在阅读一些框架的源码时发现了new static(),和new self(),甚是不解,后来查阅资料,才知道static采用了延迟绑定,能准确知道是父类还是子类的调用。这就是说static是个聪明的小孩,家里的亲戚的辈分他都能准确的叫出;而不是像他的兄弟self,只知道自己的亲爹妈。
例子如下:
<?phpclass 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
转载至:https://www.cnblogs.com/xdao/p/static_self_in_php.html
转载于:https://www.cnblogs.com/starfish29/p/11217138.html
php中static和self的区别相关推荐
- C++与C# 中static 成员变量的区别
C#中 类的静态成员变量(m_Number)可以通过非静态的成员函数(GetNumber().SetNumber())访问 这样,在外部,就可以new 一个类对象,通过调用该对象(sv)的GetNum ...
- java static 区别_Java中static和final的区别
static是静态修饰关键字,可以修饰变量和程序块以及类方法: 当定义一个static的变量的时候jvm会将将其分配在内存堆上,所有程序对它的引用都会指向这一个地址而不会重新分配内存: 当修饰一个程序 ...
- php self this static,PHP 中 self、static、$this 的区别和后期静态绑定详解
本篇文章给大家分享的内容是关于PHP 中 self.static.$this 的区别和后期静态绑定详解,有着一定的参考价值,有需要的朋友可以参考一下 self.static 和 $this 的区别 为 ...
- java中static、final 和 static final之间的区别
java中static.final 和 static final之间的区别 static可以修饰:全局属性,方法,代码块,内部类(静态内部类或嵌套内部类) 由于静态属性和方法是属于该类的所有对象的,所 ...
- Systemverilog中static、automatic区别
一.静态变量.动态变量说明:Systemverilog绿皮书P60.补充说明如下: Verilog早期版本仅有静态生命周期的概念,同一个function或者task无论你调用多少次内部的变量都是分配的 ...
- php self 和 static,PHP中static和self有哪些区别?
PHP中static和self有哪些区别? 发布时间:2020-04-02 14:51:57 来源:亿速云 阅读:36 作者:小新 这篇文章主要为大家详细介绍了PHP中static和self有哪些区别 ...
- php 抽象类 接口 区别,PHP中抽象类、接口的区别与选择分析
本文实例分析了PHP中抽象类.接口的区别与选择.分享给大家供大家参考,具体如下: 区别: 1.对接口的使用是通过关键字implements.对抽象类的使用是通过关键字extends.当然接口也可以通过 ...
- 【C++】C/C++ 中 static 的用法全局变量与局部变量
C/C++ 中 static 的用法全局变量与局部变量 目录 1. 什么是static? 1.1 static 的引入 1.2 静态数据的存储 2. 在 C/C++ 中static的作用 2.1 总的 ...
- objective-C 中使用@Class和 #import区别
2019独角兽企业重金招聘Python工程师标准>>> We can import class declaration with #import: #import "Som ...
最新文章
- Tim Berners-Lee重新分散的新Web SOLID简介
- Linux SVN命令详解
- 基于OpenResty的弹性网关实践(二)
- SUM and REPLACE
- 走近Quick Audience,了解消费者运营产品的发展和演变
- laravel的重定向
- 作者:孙忠富(1957-),男,中国农业科学院农业环境与可持续发展研究所研究员。...
- HTML通过java信息保存,如何使用java邮件API将HTML格式的数据保存为java邮件的主体?...
- 华为天才少年1万元自制机械臂:能给葡萄缝针!
- gcc mips64编译后无法运行在octeon上运行_V 语言运行hello world程序
- sharepoint2013列表实现项目级权限控制
- python—json模块的编码与解码
- 使用ERStudio创建数据表ER图并导出数据表的SQL(DDL)语句
- 数学建模——人口预测模型
- 图书管理系统项目开发计划书
- 微信小程序组件之picker-view
- 淘宝前后端分离实践(PPT)
- CentOS 8 安装视频网站与流媒体直播Nginx-http-flv-module模块
- 电脑开机直接进入桌面
- 【前端作业系列】HTML基础点 , 训练表格(2022年6月17日作业)
热门文章
- Centos 安装 MySql
- P4324 [JSOI2016]扭动的回文串
- BZOJ4076 : [Wf2014]Maze Reduction
- Python:操作文件
- [开源].NET数据库访问框架Chloe.ORM
- js中获得当前时间是年份和月份
- 非常好用的网站状态监控服务:SiteUpTime,监控你的Http/Mail/Ping etc.
- Html,xhtml,xml的定义和区别
- EXP1 PC平台逆向破解
- JAVA实现简单链表操作