我正在为查询构建器使用类似这样的东西:
$queryHandler = new QueryHandler($connection);
$queryHandler->insert("someDataHere")
->into("someTable")
->when("sleep", 1000);
我希望它在该语句上调用最后一个方法时执行查询,在本例中是 when
函数。
/**
* User: Bas
* Date: 8-12-2014
* Time: 20:11
*/
class QueryFunctions
{
.....
/**
* @param int|float|string| $data The data which is getting inserted
*
* @return $this
*/
public function insert($data) {
....
return $this;
}
public function into($table, $execute) {
....
return $this;
}
public function when($condition, $functionArgument) {
switch($condition) {
case "wait":
.....
break;
}
return $this;
}
/**
* To prevent instantiation
*/
private function __construct() {
}
}
我该怎么做?
最佳答案
一种常见的方法是颠倒函数的顺序。写:
$queryHandler->into("someTable")
->when("sleep", 1000)
->insert("someDataHere")
;
insert()
将触发查询。我想在 PHP 中除了 workers 或 crontabs 等复杂方法之外没有其他方法。
关于php - 确定何时在方法链中调用了最后一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27376329/