У меня есть общий родительский пункт класс для элементов базы данных, какphp - Почему вызов статических методов из классов sibling не работает без создания экземпляра?
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'));
}
}
он действует, как если бы я написал
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 - Все классы в моей рамках называются статически, без необходимости нового или $ это, и она прекрасно работает.
где находится 'event' класс? –
Если вы пытаетесь вызвать метод в том же классе, используйте '$ this-> get', синтаксис' self :: ',' static :: '(и более) для статических методов, который' set() 'и' get() 'не являются. –
'Все классы в моей структуре вызываются статическим образом ... он отлично работает' - нагло это не =). – AD7six