• php 静态绑定


    简介

    编辑
    后期静态绑定
    从PHP 5.3.0开始,PHP增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。
    该功能从语言内部角度考虑被命名为”后期静态绑定“。”后期绑定“的意思是说,static::不再被解析为定义当前方法所在的类,而是在实际运行时计算的。也可以称之为”静态绑定“,因为它可以用于(但不限于)静态方法的调用。

    self::的限制

    编辑
    使用self:: 或者 __CLASS__对当前类的静态引用,取决于定义当前方法所在的类:

    self::用法

    编辑
    php
    class A {
    public static function who() {
    echo __CLASS__;
    }
    public static function test() {
    self::who();
    }
    }
    class B extends A {
    public static function who() {
    echo __CLASS__;
    }
    }
    B::test();
    ?>
    以上例程会输出:
    A

    后期静态绑定的用法

    编辑
    后期静态绑定试图通过引入一个关键字表示运行时最初调用的类来绕过限制。简单地说,这个关键字能够让你在上述例子中调用test()时引用的类是B而不是A。最终决定不引入新的关键字,而是使用已经预留的static关键字。

    static::简单用法

    编辑
    <?php
    class A {
    public static function who() {
    echo __CLASS__;
    }
    public static function test() {
    static::who(); // 后期静态绑定从这里开始
    }
    }
    class B extends A {
    public static function who() {
    echo __CLASS__;
    }
    }
    B::test();
    ?>
    以上例程会输出:
    B
  • 相关阅读:
    4.14打印特殊图案
    4.13十进制/二进制转换器
    4.12程序运行时间
    4.11 计算文件的大小
    4.10文件的读写
    4.9位运算
    CyclicBarrier
    tar 命令
    MySQL 常用函数介绍
    mysql 表转 java 实体 sql
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/6559995.html
Copyright © 2020-2023  润新知