我有DbTable类,它实现了所有的数据库查询,如insertRecord,updateRecord,...但变量不是重写。静态类的最佳OOP设计模式DbTable
abstract class DbTable {
public static $table;
public static function insertRecord($data) {
// here I add some values to data, but that's not important
my_db::insert(self::$table, $data);
}
}
class User extends DbTable {
public static $table = 'table_users';
}
// everywhere I can call
User::insertRecord($data);
我知道我可以打电话
$c = get_called_class();
my_db::insert($c::$table, $data);
,但我认为这不是最好的解决办法的。
方法和变量可以是非静态的,我只是使用它们,因为它是舒适当你与你需要指定可变电源静态类的工作写的User::insertRecord
代替$user = new User(); $user->insertRecord($data);
非常感谢您! – 2015-02-07 10:55:45