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代码
Mar 08 PHP
关于php mvc开发模式的感想
Jun 28 PHP
使用Sphinx对索引进行搜索
Jun 25 PHP
PHP管理依赖(dependency)关系工具 Composer的自动加载(autoload)
Aug 18 PHP
php+xml实现在线英文词典查询的方法
Jan 23 PHP
Laravel 5框架学习之数据库迁移(Migrations)
Apr 08 PHP
PHP魔术方法使用方法汇总
Feb 14 PHP
php 使用fopen函数创建、打开文件详解及实例代码
Sep 24 PHP
php PDO判断连接是否可用的实现方法
Apr 03 PHP
php获取微信共享收货地址的方法
Dec 21 PHP
ThinkPHP框架使用redirect实现页面重定向的方法实例分析
Apr 12 PHP
PHP二维数组分页2种实现方法解析
Jul 09 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
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
PHP 搜索查询功能实现
2016/11/29 PHP
PHP框架Laravel中实现supervisor执行异步进程的方法
2017/06/07 PHP
prototype 的说明 js类
2006/09/07 Javascript
基于javascript滚动图片具体实现
2013/11/18 Javascript
详解js闭包
2014/09/02 Javascript
基于javascript实现窗口抖动效果
2016/01/03 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
微信小程序日历组件calendar详解及实例
2017/06/08 Javascript
nodejs前端自动化构建环境的搭建
2017/07/26 NodeJs
JavaScript实现无刷新上传预览图片功能
2017/08/02 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
javascript实现点亮灯泡特效示例
2019/10/15 Javascript
Python虚拟环境Virtualenv使用教程
2015/05/18 Python
python爬虫入门教程--快速理解HTTP协议(一)
2017/05/25 Python
最近Python有点火? 给你7个学习它的理由!
2017/06/26 Python
[原创]教女朋友学Python(一)运行环境搭建
2017/11/29 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
python3 BeautifulSoup模块使用字典的方法抓取a标签内的数据示例
2019/11/28 Python
Cython编译python为so 代码加密示例
2019/12/23 Python
Python转换字典成为对象,可以用"."方式访问对象属性实例
2020/05/11 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
KEEN美国官网:美国人气户外休闲鞋品牌
2021/03/09 全球购物
super()与this()的区别
2016/01/17 面试题
StringBuilder和String的区别
2015/05/18 面试题
上课说话检讨书大全
2014/01/22 职场文书
《值日生》教学反思
2014/02/17 职场文书
信息管理应届生求职信
2014/03/07 职场文书
幼师求职自荐信
2014/05/31 职场文书
教师国庆节演讲稿范文2014
2014/09/21 职场文书
文明倡议书
2015/01/19 职场文书
安全事故隐患排查治理制度
2015/08/05 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB