【发布时间】:2016-07-28 13:51:04
【问题描述】:
<?php
abstract class A {
public static $var = "A";
public function setVar() {
}
public function test() {
$this->setVar();
echo static::$var;
}
public function returnVar() {
return static::$var;
}
}
class B extends A {
public function setVar() {
static::$var = 'B';
}
}
class C extends A {
public function setVar() {
static::$var = 'C';
}
}
$class = new B();
$class->test();
$class2 = new C();
$class2->test();
echo "</br>";
echo $class->returnVar();
echo $class2->returnVar();
?>
我想要做的是使变量 $var 静态到扩展抽象类 A 的类,而不必在其他地方重新声明它。
假设我从类 B 创建了多个扩展 A 的对象,我希望从类 B 生成的所有对象共享相同的 $var 值。
假设我基于 C 类创建对象,它们应该共享相同的 $var 值...
这是我目前得到的结果:
BC
CC
但是,我正在寻找的是:
BC
BC
谢谢
【问题讨论】:
标签: php class inheritance