返回 - 方法链接

我有这个代码:
$db->get()->query()
现在我希望
get
方法的返回依赖于:
$db->get()
return $db->query var;
$db->get()->query()
get()
方法将返回
$this
    
已邀请:
更新: 根据您是否链接了代码(这是您想要做的事情),您无法更改返回值 - 但是对于此特定问题,您可以实现过于字符串的方法,该方法将“出现”以执行相同操作东西:)
<?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
    
我不确定你在问什么,但是
$db->get()->query()
是相同的 :
$somevar = $db->get();
$somevar->query();
    
该函数不知道调用上下文,例如。 $ x = $ db-> get();或$ db-> get() - > query();所以它不知道该返回什么。如果你真的必须像那样使用它,那么创建另一个函数或添加一个参数。     

要回复问题请先登录注册