可能是一个愚蠢的问题......但是如何正确使用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();
答案 0 :(得分: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