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

作者:allen0228 时间:2024-06-05 15:42:42 

本文实例讲述了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,Static,延迟静态绑定
0
投稿

猜你喜欢

  • Python创建7种不同的文件格式的方法总结

    2021-01-24 03:13:51
  • 整合ckeditor+ckfinder,解决上传文件路径问题

    2022-12-10 09:25:39
  • 使用Python和GDAL给图片加坐标系的实现思路(坐标投影转换)

    2021-11-10 03:15:31
  • 如何用idea数据库编写快递e站

    2024-01-23 08:43:56
  • Python imread、newaxis用法详解

    2021-10-09 15:44:08
  • 利用Python上传日志并监控告警的方法详解

    2022-08-23 15:31:01
  • Python项目打包成二进制的方法

    2023-11-07 05:22:02
  • pycharm运行和调试不显示结果的解决方法

    2023-11-04 21:09:46
  • Pycharm安装第三方库的超详细步骤

    2023-06-08 14:35:07
  • 用Python可视化新冠疫情数据

    2021-10-14 06:06:39
  • python列表生成器常用迭代器示例详解

    2023-11-16 01:35:12
  • Python 操作 PostgreSQL 数据库示例【连接、增删改查等】

    2021-12-14 00:54:08
  • 一文让你彻底搞懂Python中__str__和__repr__

    2021-10-30 20:09:56
  • SQL的substring_index()用法实例(MySQL字符串截取)

    2024-01-27 19:30:19
  • 简述MySQL 正则表达式

    2024-01-16 12:17:44
  • OpenCV+Python几何变换的实现示例

    2022-02-09 14:44:52
  • 用python实现超强的加密软件

    2022-12-06 11:42:50
  • Python解析m3u8拼接下载mp4视频文件的示例代码

    2022-04-22 13:20:16
  • Python+Turtle绘制一个可爱的生日蛋糕

    2022-12-29 04:05:39
  • PHP addcslashes()函数讲解

    2023-06-10 01:32:33
  • asp之家 网络编程 m.aspxhome.com