您的位置:首页 > 编程语言 > PHP开发

PHP 类中的静态变量的继承

2015-08-13 12:00 549 查看
在此我首先运行一段小程序,先不去直接讲出静态变量的继承在PHP中语法规则,for example:

class Base{

public $a;

public static $b;

}

class Derived extends Base{

public function __construct(){

$this->a=0;

parent::$b=0;

}

public function f(){

$this->a++;

parent::$b++;

}

}

$D1=new Derived();

$D2=new Derived();

$D1->f();

echo $D1->a." ".Derived::$b."<br>";

$D2->f();

echo $D2->a." ".Derived::$b."<br>";

得出的结果是,如下:



在此有的人可能会好奇,为什么Derived::$b得出来的结果是:2,而不是:1?

由上面这个小例子,可以得出原因:当一个子类,继承了父类中的静态变量之后,在实例化不同的对象时,所访问原来的那个静态变量所指向的地址是同一个地址。而不会因为新的实例化对象,从而开辟一段新的地址给这个变量。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: