我试图尽早提出这个问题,但我认为我匆匆提出这个问题并没有得到我所想的...
$ this的值和对象是否会传递给扩展类?
<?php
class bar {
public function foo( $t ) {
$this->foo = $t;
}
}
class foo extends bar {
public function bar () {
return $this->foo;
}
}
$b = new bar();
$b->foo('bar');
$f = new foo();
echo $f->bar();
?>
如果没有,是否有另一个decleration(而不是extends)没有将父类的对象传递给子类?
的问候,
菲尔
答案 0 :(得分:2)
您的示例会产生Undefined property: foo::$foo
错误。我认为您尝试使用的是static
属性:
class bar {
protected static $foo;
public function foo ($t) {
static::$foo = $t;
}
}
class foo extends bar {
public function bar () {
return static::$foo;
}
}
然后是以下内容:
$b = new bar();
$b->foo('bar');
$f = new foo();
echo $f->bar();
...会回显bar
,这看起来就像你想要实现的目标。