我有一个通用父类项数据库元素,如
class item {
function set($i = '') {
//set element in database
}
function get($id = '') {
//get element in database
return $item;
}
}
我有不同的类来实现项目的父类,比如users和events——当我为类事件调用users内部的set方法时,比如
class users extends item {
function dothis() {
events::set(array('start' => 'today', 'end' => 'tomorrow'));
}
}
就好像我写了
class users extends item {
function dothis() {
self::set(array('start' => 'today', 'end' => 'tomorrow'));
}
}
试图将事件插入用户表,所以我必须这样实例化类
class users extends item {
function dothis() {
$e = new events();
$e->set(array('start' => 'today', 'end' => 'tomorrow'));
}
}
我做错了什么吗?是否有避免实例化的方法?
EDIT -我的框架中的所有类都以静态方式调用,不需要new或$this,它工作得很好。
如果你想使用静态方法,你还应该像这样声明你的方法:
protected static function set($i = '') {
protected static function get($id = '') {
可以调用self::set(...)
和self::get(...)
如果你想使用非静态方法,你只需要修改
self::set(...)
$this->set(...)