我已经写了很多 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()方法)。