这篇文章主要介绍了 PHPStatic 延迟静态绑定用法, 结合实例形式较为详细的分析了 Static 延迟静态绑定的功能, 定义及使用技巧, 需要的朋友可以参考下
本文实例讲述了 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 操作 office 文档技巧总结 (包括 word,excel,access,ppt)php 日期与时间用法总结 php 面向对象程序设计入门教程 php 字符串(string) 用法总结 php+mysql 数据库操作入门教程及 php 常见数据库操作技巧汇总
希望本文所述对大家 PHP 程序设计有所帮助
来源: https://www.php1.cn/detail/php-ced9f78b83.html