返回 - 方法链接

时间:2010-07-19 03:01:12

标签: php oop

我有这段代码:

$db->get()->query()

现在我希望get方法的返回依赖于:

$db->get()
return $db->query var;

但是

$db->get()->query()

get()方法将返回$this

3 个答案:

答案 0 :(得分:3)

更新: 根据您是否链接了代码(这是您想要做的事情),您无法更改返回值 - 但是对于此特定问题,您可以实现太多字符串方法,该方法将“出现”以执行相同操作事情:))

<?php
class DB {

  private $query = 'some query';

  public function get()
  {
    return $this;
  }

  public function query()
  {
    // do the query function
  }

  public function __toString()
  {
     return $this->query;
  }
}

$db = new DB;
echo $db->get(); //prints 'some query'
$db->get()->query(); // runs the query() method

答案 1 :(得分:1)

我不确定你在问什么,但是

$db->get()->query()

与:

相同
$somevar = $db->get();
$somevar->query();

答案 2 :(得分:1)

该函数不知道调用上下文,例如。 $ x = $ db-&gt; get();或$ db-&gt; get() - &gt; query();所以它不知道该返回什么。如果你真的必须像那样使用它,可以创建另一个函数或添加一个参数。

相关问题