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
  • 相关阅读:
    主成分分析(PCA)原理及推导
    SVD在推荐系统中的应用详解以及算法推导
    奇异值分解(SVD)原理详解及推导
    jdk1.8源码学习笔记
    #WeakHashMap
    #TreeSet
    如何在Centos7安装swoole的PHP扩展
    Photoshop 使用过程中遇到的问题
    Sublime 配置 Markdown,并实时预览
    移动端响应式布局,rem动态更新
  • 原文地址:https://www.cnblogs.com/feiyun8616/p/6559995.html
Copyright © 2011-2022 走看看