2010-03-07 4 views
0

У меня есть метод, который в основном возвращает результаты запроса mysql.Метод повторного использования в классе

public function getStuff() { 
$this->sort = "myColumn ASC"; 
$query = ... ORDER BY $this->sort; 
return $data; 
} 

Я хотел бы повторно использовать этот результат, только с другим порядком сортировки, и кажется, что я должен быть в состоянии захватить эти данные в другом методе, просто вызвав оригинальный метод. Как это:

public function getMoreStuff() { 
$this->sort = "anotherColumn DESC"; 
$this->getStuff(); 
} 

Но, в то время как "getStuff()" возвращает данные, как и ожидалось, "getMoreStuff()" ничего не вернуть. Я уверен, что нет необходимости копировать весь запрос в мой второй метод, но я не понимаю, как я могу его включить. Любое руководство будет очень оценено. Благодаря!

ответ

1

Пара проблемы:

  1. Когда getMoreStuff() вызывает getStuff(), $ this-> сортировать из getMoreStuff() в настоящее время о verbrite по порядку сортировки от getStuff(). Вы можете присвоить getStuff() по умолчанию , используя getStuff($sort = "myColumn ASC"), а затем загрузите другой порядок сортировки в getStuff(), когда вам нужно.

  2. getStuff() возвращает данные в getMoreStuff(), который затем не возвращает данные, которые он только что получил. Вы должны использовать return $this->getStuff(); (или return $this->getStuff("anotherColumn DESC");.

+0

Медленный типер - извините за дублирующую часть вашего ответа, chelmertz. –

+0

Работал как очарование - огромное спасибо за вашу помощь! – jonathanatx

+0

haha ​​np. Вы заполнили важный 1) – chelmertz

0

Один из способов сделать это:

public function getStuff($sort = 'myColumn ASC') { 
    $query = "... ORDER BY $sort"; 
} 

вызов из вне вашего класса с переменной $sort -значения, или внутри вашего класса с определенными именами методов (например, ярлыки).

+0

Спасибо! Это, безусловно, работает с использованием различных значений сортировки $, но вы знаете, почему запрос не будет такой же метод будет возвращать значение при вызове на своем собственном, но не возвращал значение, когда вызывался как часть другого метода? Я не могу понять, почему $ this-> getStuff() не работает, когда вызывается как часть моего второго метода. – jonathanatx

Смежные вопросы