我有一个基本上返回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()”不会返回任何内容。我确信没有必要将整个查询复制到我的第二种方法中,但我不知道如何包含它。任何指导都将非常感激。谢谢!
答案 0 :(得分:1)
一些问题:
当getMoreStuff()调用时
getStuff(),$ this->排序
getMoreStuff()被覆盖
通过getStuff()的排序顺序。
你可以给getStuff()一个默认值
使用getStuff($sort =
"myColumn ASC")
排序,然后在需要时为getStuff()提供不同的排序顺序。
getStuff()将数据返回到getMoreStuff(),然后返回刚刚获得的数据。您需要使用return $this->getStuff();
(或return $this->getStuff("anotherColumn DESC");
。
答案 1 :(得分:0)
一种方法:
public function getStuff($sort = 'myColumn ASC') {
$query = "... ORDER BY $sort";
}
使用变量$sort
- 值从类外部调用它,或者使用已定义的方法名称(如快捷方式)从类内部调用它。