我有一个基本上可以返回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()”却未返回任何内容。我确定没有必要将整个查询复制到第二种方法中,但是我对如何包含它感到困惑。任何指导将不胜感激。谢谢!

最佳答案

几个问题:


当getMoreStuff()调用时
getStuff(),$ this-> sort的来源
getMoreStuff()被覆盖
按照getStuff()的排序顺序。
您可以给getStuff()一个默认值
使用getStuff($sort ="myColumn ASC")进行排序,然后在需要时向getStuff()提供不同的排序顺序。
getStuff()将数据返回到getMoreStuff(),后者不再返回它刚得到的数据。您需要使用return $this->getStuff();(或return $this->getStuff("anotherColumn DESC");

09-29 21:02