PHP后期静态绑定之self::限制实例分析


Posted in PHP onDecember 21, 2018

本文实例讲述了PHP后期静态绑定之self::限制。分享给大家供大家参考,具体如下:

在此我想讲一讲后期静态绑,我想讲self::static进行比较说明。

官方文档上是这样定义的:

“后期绑定”的意思是说,static:: 不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为”静态绑定”,因为它可以用于(但不限于)静态方法的调用。

在此我想用官方文档上的一个例子来说明self::限制:

self::实例

class A{
  public static function who(){
   echo __CLASS__;
  }
  public static function test(){
   self::who();
  }
}
class B extends A{
  public static function who(){
   echo __class__;
  }
}
$B=new B();
$B->test();`

输出结果为:

A

static实例:

class A{
  public static function who(){
    echo __class__;
  }
  public static function test(){
    static::who();
  }
}
class B extends A{
  public static function who(){
    echo __class__;
  }
}
$B=new B();
$B->test();

输出结果为:

B

注意,注意啦!这里用的是:static::,以前很少在PHP中见过这种写法吧?看到static::,不禁想起来:self:: parent::

在此我想把self:: static:: parent::进行一个比较:

  • self:: 通常指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量(不可以指向非静态变量),但是可以访问类中其他静态方法与非静态方法。它是当前类的指针。
  • parent:: 是指向父类的指针,一般我们使用parent来调用父类的构造函数。但也可以访问父类的其他方法(不可以访问其他静态与非静态变量)。
  • static:: 通常用于后期静态绑定中。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP性能优化 产生高度优化代码
Jul 22 PHP
说说PHP的autoLoad自动加载机制
Sep 27 PHP
php批量上传的实现代码
Jun 09 PHP
对淘宝URL中ID提取的PHP代码
Sep 01 PHP
php中curl和file_get_content的区别
May 10 PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 PHP
PHP实现图片裁剪、添加水印效果代码
Oct 01 PHP
php+curl 发送图片处理代码分享
Jul 09 PHP
PHP实现蛇形矩阵,回环矩阵及数字螺旋矩阵的方法分析
May 29 PHP
Laravel 5.5 的自定义验证对象/类示例代码详解
Aug 29 PHP
PHP判断函数是否被定义的方法
Jun 21 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 PHP
PHP类与对象后期静态绑定操作实例详解
Dec 20 #PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 #PHP
PHP设计模式之模板模式定义与用法详解
Dec 20 #PHP
PHP面向对象程序设计之接口的继承定义与用法详解
Dec 20 #PHP
PHP面向对象程序设计之多态性的应用示例
Dec 19 #PHP
PHP自定义错误处理的方法分析
Dec 19 #PHP
PHP异常类及异常处理操作实例详解
Dec 19 #PHP
You might like
如何把PHP转成EXE文件
2006/10/09 PHP
PHP获取文件相对路径的方法
2015/02/26 PHP
golang、python、php、c++、c、java、Nodejs性能对比
2017/03/12 NodeJs
PHP提取字符串中的手机号正则表达式怎么写
2017/07/17 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
json原理分析及实例介绍
2012/11/29 Javascript
JS设置获取cookies的方法
2014/01/26 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
仿百度换肤功能的简单实例代码
2016/07/11 Javascript
AngularJs中 ng-repeat指令中实现含有自定义指令的动态html的方法
2017/01/19 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
angular中的cookie读写方法
2017/08/02 Javascript
JavaScript与Java正则表达式写法的区别介绍
2017/08/15 Javascript
Vue将页面导出为图片或者PDF
2020/08/17 Javascript
ES6 Iterator接口和for...of循环用法分析
2019/07/31 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
[56:41]iG vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/17 DOTA
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
Python中几种操作字符串的方法的介绍
2015/04/09 Python
解决pandas .to_excel不覆盖已有sheet的问题
2018/12/10 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
解决python图像处理图像赋值后变为白色的问题
2020/06/04 Python
全面解析HTML5中的标准属性与自定义属性
2016/02/18 HTML / CSS
科颜氏加拿大官方网站: Kiehl’s加拿大
2016/08/16 全球购物
国际知名设计师时装商店:Coggles
2016/09/05 全球购物
营销与策划专业毕业生求职信
2013/11/01 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
企业道德讲堂实施方案
2014/03/19 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
运动员加油词
2015/07/18 职场文书
小学运动会通讯稿
2015/07/18 职场文书
和领导吃饭祝酒词
2015/08/11 职场文书
2016年校园社会综合治理宣传月活动总结
2016/03/16 职场文书
JavaScript使用canvas绘制坐标和线
2021/04/28 Javascript