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脚本的10个技巧(5)
Oct 09 PHP
PHP中动态HTML的输出技术
Oct 09 PHP
用PHP和ACCESS写聊天室(一)
Oct 09 PHP
php时间不正确的解决方法
Apr 09 PHP
php 模拟post_验证页面的返回状态(实例讲解)
Oct 28 PHP
thinkphp的CURD和查询方式介绍
Dec 19 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
ThinkPHP3.1的Widget新用法
Jun 19 PHP
php使用socket post数据到其它web服务器的方法
Jun 02 PHP
Joomla语言翻译类Jtext用法分析
May 05 PHP
利用PHPExcel读取Excel的数据和导出数据到Excel
May 12 PHP
php学习笔记之mb_strstr的基本使用
Feb 03 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 中文乱码解决办法总结分析
2009/07/30 PHP
PHP中用hash实现的数组
2011/07/17 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
关于php中一些字符串总结
2016/05/05 PHP
PHP获取指定日期是星期几的实现方法
2016/11/30 PHP
js函数使用技巧之 setTimeout(function(){},0)
2009/02/09 Javascript
jquery text()要注意啦
2009/10/30 Javascript
jQuery的控件及事件(输入控件及回车事件)使用示例
2013/07/25 Javascript
js 获取页面高度和宽度兼容 ie firefox chrome等
2014/05/14 Javascript
javascript常见用法总结
2014/05/22 Javascript
基于javascript的JSON格式页面展示美化方法
2014/07/02 Javascript
理解js对象继承的N种模式
2016/01/25 Javascript
第十章之巨幕页头缩略图与警告框组件
2016/04/25 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
javascript类型系统_正则表达式RegExp类型详解
2016/06/24 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
基于jQuery实现火焰灯效果导航菜单
2017/01/04 Javascript
Vue.js实现简单动态数据处理
2017/02/13 Javascript
JS中Swiper的使用和轮播图效果
2017/08/11 Javascript
原生JS实现拖拽效果
2020/12/04 Javascript
JavaScript中条件语句的优化技巧总结
2020/12/04 Javascript
python ElementTree 基本读操作示例
2009/04/09 Python
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
简单了解Pandas缺失值处理方法
2019/11/16 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
Python爬虫实现HTTP网络请求多种实现方式
2020/06/19 Python
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
ColourPop美国官网:卡拉泡泡,洛杉矶彩妆品牌
2019/04/28 全球购物
优秀经理事迹材料
2014/02/01 职场文书
元宵节晚会主持人串词
2014/03/25 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
清明节随笔
2015/08/15 职场文书
个人房屋租赁合同(标准范本)
2019/09/16 职场文书
win11无法添加打印机怎么办? 提示windows无法打开添加打印机的解决办法
2022/04/05 数码科技
TypeScript 使用 Tuple Union 声明函数重载
2022/04/07 Javascript
JS开发前端团队展示控制器来为成员引流
2022/08/14 Javascript