我有一个用于数据库元素的通用父 item 类,比如
HTTP_HOST
当我在用户内部调用类方事件的set方法时,我有不同的类实现项目的父级,如用户和事件,例如
class item {
function set($i = '') {
//set element in database
}
function get($id = '') {
//get element in database
return $item;
}
}
就好像我写了
class users extends item {
function dothis() {
events::set(array('start' => 'today', 'end' => 'tomorrow'));
}
}
尝试在users表中插入事件,所以我必须以这种方式实例化该类
class users extends item {
function dothis() {
self::set(array('start' => 'today', 'end' => 'tomorrow'));
}
}
我做错了吗?有没有办法避免实例化?
编辑 - 我的框架中的所有类都是以静态方式调用的,无需 new 或 $ this ,并且它运行良好。
答案 0 :(得分:1)
如果你想使用静态方法,你也应该声明你的方法:
protected static function set($i = '') {
protected static function get($id = '') {
因此,您可以致电self::set(...)
和self::get(...)
。
如果您想使用非静态方法,您只需要更改
self::set(...)
到
$this->set(...)