PHP Static延迟静态绑定用法分析


Posted in PHP onMarch 16, 2016

本文实例讲述了PHP Static延迟静态绑定用法。分享给大家供大家参考,具体如下:

PHP5.3以后引入了延迟静态绑定static,它是为了解决什么问题呢?php的继承模型中有一个存在已久的问题,那就是在父类中引用扩展类的最终状态比较困难。来看一个例子。

class A 
{ 
  public static function echoClass(){ 
    echo __CLASS__; 
  }
  public static function test(){ 
    self::echoClass();    
  }
}
class B extends A 
{    
  public static function echoClass() 
  { 
     echo __CLASS__; 
  } 
} 
B::test(); //输出A

在PHP5.3中加入了一个新特性:延迟静态绑定,就是把本来在定义阶段固定下来的表达式或变量,改在执行阶段才决定,比如当一个子类继承了父类的静态表达式的时候,它的值并不能被改变,有时不希望看到这种情况。

下面的例子解决了上面提出的问题:

class A 
{ 
  public static function echoClass(){ 
    echo __CLASS__; 
  } 
  public static function test() 
  { 
    static::echoClass();    
  } 
} 
class B extends A 
{    
  public static function echoClass(){ 
     echo __CLASS__; 
  } 
} 
B::test(); //输出B

第8行的static::echoClass();定义了一个静态延迟绑定方法,直到B调用test的时候才执行原本定义的时候执行的方法。

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

PHP 相关文章推荐
php 在文件指定行插入数据的代码
May 08 PHP
PHP Directory 函数的详解
Mar 07 PHP
如何批量替换相对地址为绝对地址(利用bat批处理实现)
May 27 PHP
php定时计划任务的实现方法详解
Jun 06 PHP
ThinkPHP写数组插入与获取最新插入数据ID实例
Nov 03 PHP
PHP制作万年历
Jan 07 PHP
PHP防止刷新重复提交页面的示例代码
Nov 11 PHP
PHP输入流php://input实例讲解
Dec 22 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
Aug 17 PHP
yii2 commands模式以及配置crontab定时任务的方法
Aug 19 PHP
PHP基于redis计数器类定义与用法示例
Feb 08 PHP
PHP的PDO预处理语句与存储过程
Jan 27 PHP
PHP5.5迭代生成器用法实例详解
Mar 16 #PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
Mar 16 #PHP
PHP 中提示undefined index如何解决(多种方法)
Mar 16 #PHP
Laravel中Trait的用法实例详解
Mar 16 #PHP
Laravel中注册Facades的步骤详解
Mar 16 #PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 #PHP
Laravel实现构造函数自动依赖注入的方法
Mar 16 #PHP
You might like
php简单统计中文个数的方法
2016/09/30 PHP
用javascript实现点击链接弹出"图片另存为"而不是直接打开
2007/08/15 Javascript
javascript的onchange事件与jQuery的change()方法比较
2009/09/28 Javascript
JS类的封装及实现代码
2009/12/02 Javascript
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
抛弃Nginx使用nodejs做反向代理服务器
2014/07/17 NodeJs
JS表的模拟方法
2015/02/05 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
为什么JS中eval处理JSON数据要加括号
2015/04/13 Javascript
JavaScript中判断函数、变量是否存在
2015/06/10 Javascript
使用Browserify配合jQuery进行编程的超级指南
2015/07/28 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
JS实现点击网页判断是否安装app并打开否则跳转app store
2016/11/18 Javascript
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
layui操作列按钮个数和文字颜色的判断实例
2019/09/11 Javascript
vue 使用外部JS与调用原生API操作示例
2019/12/02 Javascript
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
Python使用filetype精确判断文件类型
2017/07/02 Python
Python安装模块的常见问题及解决方法
2018/02/05 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
Python爬虫之Selenium设置元素等待的方法
2020/12/04 Python
Python xlwings插入Excel图片的实现方法
2021/02/26 Python
CSS3 开发工具收集
2010/04/17 HTML / CSS
应届生会计求职信
2013/11/11 职场文书
高级电工工作职责
2013/11/21 职场文书
农场厂长岗位职责
2013/12/28 职场文书
酒店总经理岗位职责范本
2014/08/08 职场文书
2014个人四风对照检查材料思想汇报
2014/09/18 职场文书
答谢词范文
2015/01/05 职场文书
参观邀请函范文
2015/02/02 职场文书
优秀大学生自荐信
2015/03/26 职场文书
公司员工违纪检讨书
2015/05/05 职场文书
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python
python的netCDF4批量处理NC格式文件的操作方法
2022/03/21 Python
TV动画《史上最强大魔王转生为村民A》番宣CM公布
2022/04/01 日漫