php - 扩展类携带对象

时间:2010-11-07 19:00:55

标签: php class extend

我试图尽早提出这个问题,但我认为我匆匆提出这个问题并没有得到我所想的...

$ 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)没有将父类的对象传递给子类?

的问候,

菲尔

1 个答案:

答案 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,这看起来就像你想要实现的目标。