在类中重用方法

时间:2010-03-07 08:01:13

标签: php mysql methods

我有一个基本上返回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()”不会返回任何内容。我确信没有必要将整个查询复制到我的第二种方法中,但我不知道如何包含它。任何指导都将非常感激。谢谢!

2 个答案:

答案 0 :(得分:1)

一些问题:

  1. 当getMoreStuff()调用时 getStuff(),$ this->排序 getMoreStuff()被覆盖 通过getStuff()的排序顺序。 你可以给getStuff()一个默认值 使用getStuff($sort = "myColumn ASC")排序,然后在需要时为getStuff()提供不同的排序顺序。

  2. getStuff()将数据返回到getMoreStuff(),然后返回刚刚获得的数据。您需要使用return $this->getStuff();(或return $this->getStuff("anotherColumn DESC");

答案 1 :(得分:0)

一种方法:

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

使用变量$sort - 值从类外部调用它,或者使用已定义的方法名称(如快捷方式)从类内部调用它。