【发布时间】:2012-06-22 11:36:54
【问题描述】:
我在 PHP 中有这个父类:
class parentClass{
public $table;
public function __construct(){
$this->table = "my_parent_table";
}
public function getName($id) {
$strQuery = "SELECT name FROM $this->table WHERE id=$id";
$result = mysql_query($strQuery);
if ($result) {
$row = mysql_fetch_object($result);
if ($row) {
return $row->name;
} else {
return false;
}
} else {
return false;
}
}
}
我还有另一个类继承了这个:
class childClass extends parentClass{
public $table;
public function __construct(){
$this->table = "my_child_table";
}
}
然后在我正在做的另一个文件中:
$myObj = new childClass();
$name = $myObj->getName('1');
现在的问题是getName函数有一个空表,所以变量$this->table是空的,而我希望它是""my_child_table",只要我有一个childClass对象。
有谁知道我做错了什么? 提前致谢
【问题讨论】:
-
将
var_dump($this->table);放在getName的开头并在此处显示结果 -
好吧,我的错,变量 $table 是私有的,所以这是问题所在,我将其更改为公共并且工作正常。
-
如果您不希望它可公开访问但仍可覆盖,请将其设置为
protected。
标签: php sql inheritance constructor