我已经用 PHP 编写了很多面向对象的代码,但到目前为止,我所有的类都是“单一的”,我想你可以称之为。我正在更改几个类(有 5 个左右相同的方法)以扩展一个类(以摆脱重复的代码)。我遇到了一些问题。
我正在尝试访问父类中的方法,但您可以看到问题。
父类:
class DatabaseObject {
public static function find_all() {
return self::find_by_sql("SELECT * FROM " . self::$table_name);
}
}
儿童班:
class Topics extends DatabaseObject {
protected static $table_name = "master_cat";
protected static $db_fields = array('cat_id', 'category');
public $cat_id;
public $category;
}
代码试图从 php/html 文件中访问该表中的所有信息:
$topics=Topics::find_all();
foreach($topics as $topic):
echo $topic->category;
endforeach;
如您所见,大部分代码并没有被合并到新的处事方式中。我需要更改 self::$table_name ,它不再以我做事的新方式工作。我将有大约 5 个类扩展这个对象,那么最好的编码方法是什么,这样我就可以用一种方法访问不同的表(而不是在 5 个不同的类中包含这个确切的 find_all() 方法。