0

可能是一个愚蠢的问题..但是我如何在不覆盖它们的情况下正确使用 Testb 类中的 Test 类方法?

<?php
class Test {

    private $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }

}

<?php

class Testb extends Test {

    public function __construct() {
        parent::__construct($name);
    }

}

<?php

include('test.php');
include('testb.php');

$a = new Test('John');
$b = new Testb('Batman');

echo $b->getName();
4

1 回答 1

1

如果您希望能够使用该参数对其进行初始化,则还需要为构造Testb函数提供一个参数。$name我修改了你的Testb类,使它的构造函数实际上接受了一个参数。您目前拥有它的方式,您应该无法初始化您的Testb类。我使用如下代码:

<?php
class Test {

    private $name;

    public function __construct($name) {
        $this->name = $name;
    }

    public function getName() {
        return $this->name;
    }

}

class Testb extends Test {

    // I added the $name parameter to this constructor as well
    // before it was blank.
    public function __construct($name) {
        parent::__construct($name);
    }

}

$a = new Test('John');
$b = new Testb('Batman');

echo $a->getName();
echo $b->getName();
?>

也许您没有启用错误报告?无论如何,您可以在这里验证我的结果:http: //ideone.com/MHP2oX

于 2013-02-10T22:10:17.853 回答