zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    C++函数声明与定义
    《寻找发帖“水王”》代码的理解
    将正整数转换为二进制数
    使用Cookie记住登录用户
    Java组合算法
    已知链表头结点指针head,写一个函数把这个链表逆序
    String.IsNullOrEmpty官方示例
    log4net的使用
    asp.net MVC4总结
    点击获取页面上的经纬度
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/6559995.html
Copyright © 2011-2022 走看看