我有这段代码:
$db->get()->query()
现在我希望get
方法的返回依赖于:
$db->get()
return $db->query var;
但是
$db->get()->query()
get()
方法将返回$this
答案 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();所以它不知道该返回什么。如果你真的必须像那样使用它,可以创建另一个函数或添加一个参数。