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 相关文章推荐
下载文件的点击数回填
Oct 09 PHP
显示程序执行时间php函数代码
Aug 29 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
php修改上传图片尺寸的方法
Apr 14 PHP
深入php内核之php in array
Nov 10 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
Jun 06 PHP
PHP实现腾讯与百度坐标转换
Aug 05 PHP
PHP7数组的底层实现示例
Aug 25 PHP
php面向对象重点知识分享
Sep 27 PHP
laravel validate 设置为中文的例子(验证提示为中文)
Sep 29 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 PHP
gearman中任务的优先级和返回状态实例分析
Feb 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
239军机修复记
2021/03/02 无线电
php分页代码学习示例分享
2014/02/20 PHP
使用Composer安装Yii框架的方法
2016/03/15 PHP
DEDE实现转跳属性文档在模板上调用出转跳地址
2016/11/04 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
2018/06/20 PHP
JavaScript中null与undefined分析
2009/07/25 Javascript
分析Node.js connect ECONNREFUSED错误
2013/04/09 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
JS实现的新浪微博大厅文字内容滚动效果代码
2015/11/05 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
javascript HTML5文件上传FileReader API
2020/03/27 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
AngularJS 仿微信图片手势缩放的实例
2017/09/28 Javascript
jq源码解析之绑在$,jQuery上面的方法(实例讲解)
2017/10/13 jQuery
使用javascript做在线算法编程
2018/05/25 Javascript
vue2.0项目实现路由跳转的方法详解
2018/06/21 Javascript
详解Ant Design of React的安装和使用方法
2018/12/27 Javascript
浅谈VUE防抖与节流的最佳解决方案(函数式组件)
2019/05/22 Javascript
js实现select下拉框选择
2020/01/11 Javascript
JS sort排序详细使用方法示例解析
2020/09/27 Javascript
Python中循环引用(import)失败的解决方法
2018/04/22 Python
Python socket套接字实现C/S模式远程命令执行功能案例
2018/07/06 Python
符合语言习惯的 Python 优雅编程技巧【推荐】
2018/09/25 Python
python操作文件的参数整理
2019/06/11 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
pandas 对日期类型数据的处理方法详解
2019/08/08 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
Volcom英国官方商店:美国殿堂级滑板、冲浪、滑雪服装品牌
2019/03/13 全球购物
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
南京青奥会口号
2014/06/12 职场文书
2014幼儿园小班工作总结
2014/11/10 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
大学生创业,为什么都会选择快餐饮?
2019/08/08 职场文书
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技