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&mysql(一)
Oct 09 PHP
php IP及IP段进行访问限制的代码
Dec 17 PHP
应用开发中涉及到的css和php笔记分享
Aug 02 PHP
使用PHP实现密保卡功能实现代码<打包下载直接运行>
Oct 09 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
thinkphp3.x中cookie方法的用法分析
May 19 PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 PHP
php mysql PDO 查询操作的实例详解
Sep 23 PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 PHP
详解php协程知识点
Sep 21 PHP
浅谈PHPANALYSIS提取关键字
Mar 08 PHP
PHP设计模式之命令模式示例详解
Dec 20 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目录导航文件代码
2006/10/09 PHP
修改php.ini实现Mysql导入数据库文件最大限制的修改方法
2007/12/11 PHP
将函数的实际参数转换成数组的方法
2010/01/25 Javascript
一个js的tab切换效果代码[代码分离]
2010/04/11 Javascript
Jquery多选下拉列表插件jquery multiselect功能介绍及使用
2013/05/24 Javascript
javascript实现iframe框架延时加载的方法
2014/10/30 Javascript
node.js中的buffer.Buffer.isBuffer方法使用说明
2014/12/14 Javascript
jQuery实现限制textarea文本框输入字符数量的方法
2015/05/28 Javascript
JS随机调用指定函数的方法
2015/07/01 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
浅谈Angular 中何时取消订阅
2017/11/22 Javascript
JavaScript 数组去重并统计重复元素出现的次数实例
2017/12/14 Javascript
通过 JS 判断页面是否有滚动条的实现方法
2018/04/05 Javascript
js事件on动态绑定数据,绑定多个事件的方法
2018/09/15 Javascript
解决Vue中引入swiper,在数据渲染的时候,发生不滑动的问题
2018/09/27 Javascript
python 从远程服务器下载日志文件的程序
2013/02/10 Python
python线程池threadpool使用篇
2018/04/27 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
利用python和ffmpeg 批量将其他图片转换为.yuv格式的方法
2019/01/08 Python
python中数组和矩阵乘法及使用总结(推荐)
2019/05/18 Python
CSS3之边框多颜色Border-color属性使用示例
2013/10/11 HTML / CSS
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
实现strstr功能,即在父串中寻找子串首次出现的位置
2016/08/05 面试题
大学毕业生通用求职信
2013/09/28 职场文书
护理工作感言
2014/01/16 职场文书
生态养殖创业计划书
2014/05/06 职场文书
员工教育培训协议书
2014/09/27 职场文书
2015年五一劳动节演讲稿
2015/03/18 职场文书
纪委立案决定书
2015/06/24 职场文书
导游词之宁夏贺兰山岩画
2019/11/08 职场文书
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript
Python PIL按比例裁剪图片
2022/05/11 Python