美文网首页PHPPHP编程it互联网
PHP static:: - 后期绑定的注意事项

PHP static:: - 后期绑定的注意事项

作者: Kumiko | 来源:发表于2015-06-09 13:46 被阅读57次

这里有一个重要的概念就是scope,如果子类没有overrided父类的属性或方法,那么那个属性或方法的scope就还是父类的。

样例代码如下:

<?php
class A {
    public static $v;
    public static function setV($value) {static::$v = $value;}
    public static function setV2($value) {self::$v = $value;}
}

class B extends A{
    public static $v;
};
class C extends A{};
class D extends B{};

A::setV('a');
C::setV('c');
B::setV('b');
var_dump(B::$v);
var_dump(A::$v);
var_dump(C::$v);
var_dump(D::$v);

// output:
// string(1) "b"
// string(1) "c"
// string(1) "c"
// string(1) "b"

在这里,即使是用C::setV(),改变的还是A的属性。因为C的$v就是A的$v

相关文章

  • PHP static:: - 后期绑定的注意事项

    这里有一个重要的概念就是scope,如果子类没有overrided父类的属性或方法,那么那个属性或方法的scope...

  • php下get_called_class 和 get_class

    一、定义区别 get_called_class :返回后期静态绑定("Late Static Binding")类...

  • php后期静态绑定

    在观看laravel源码的时候,突然看到了 虽然之前翻看手册的时候看到过,但很少使用,于是仔细看了一下,原来是后期...

  • php 后期静态绑定

    php手册上关于后期静态绑定如下解释:后期静态绑定工作原理是存储了在上一个"非转发调用"的类名。 这里我们先明确什...

  • PHP 后期静态绑定

    自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内引用静态调用的类。 准确说,...

  • 2017年3月5日10:19:39

    iava中除了static和final方法之外,都是动态绑定(后期绑定、运行时绑定),即在运行时才知道调用的是哪个...

  • PHP静态延迟绑定

    1、什么是静态延时绑定 1)自 PHP 5.3.0 起,PHP 增加了一个叫做后期静态绑定的功能,用于在继承范围内...

  • static关键字

    用途:static 关键字来定义静态方法和属性。static 也可用于定义静态变量以及后期静态绑定 1 notic...

  • PHP面向对象-后期静态绑定

    说明 准确说,后期静态绑定工作原理是存储了在==上一个==“==非转发调用==”(non-forwarding c...

  • 对于PHP 后期静态绑定的理解

    在学静态方法调用的时候只学了 parent:: self:: 调用静态方法,昨天突然看到一个兄弟的代码,写了一个...

网友评论

    本文标题:PHP static:: - 后期绑定的注意事项

    本文链接:https://www.haomeiwen.com/subject/uuhjqttx.html