【发布时间】:2018-06-16 21:00:04
【问题描述】:
我有以下课程。
class User extends GenericObject {
private $table='users';
private $primary_key='id';
}
class Animal extends GenericObject {
private $table='animals';
private $primary_key='id';
}
class GenericObject {
public static function create_from_db($params) {
$self = new self();
//Build PDO query here
//These echo statemtns fail
echo $self->table;
echo $self->primary_key;
return $self;
}
}
在我想要做的与这些类接口的代码中:
$animal=Animal::create_from_db($params);
$user=User::create_from_db($other_params);
我使用超类的目的是不必一遍又一遍地复制 create_from_db 函数。
我尝试覆盖父类并调用它,但我不确定完成我想要完成的任务的“正确”方式。
任何提示
【问题讨论】:
-
variable你的意思是属性?你可以试试parent::。请注意,如果一个类从另一个类扩展,那么您应该拥有子类的所有属性,因为它们在父类上不是私有的。 -
停止尝试制作活动记录。您不应该混合持久性和域逻辑。
标签: php oop inheritance