php最后最后再执行,PHP-确定何时在方法链中调用最后一个方法

我正在使用类似的东西作为查询生成器:

$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 = new QueryHandler($connection);

$queryHandler->insert("someDataHere");

$queryHandler->into("someTable");

$queryHandler->when("sleep", 1000);

即使这种逻辑可行,也可能并不总是很方便.当您想稍后执行准备好的查询时,可能会遇到这种情况.

而是使用另一种方法发送查询:

$queryHandler->insert("someDataHere")

->into("someTable")

->when("sleep", 1000);

$queryHandler->start(); //will execute conditions (such as sleep) and then send query

滴答回调

在PHP中使用tick callback可能存在令人毛骨悚然的解决方法.您可以在返回$this之前先分配一个函数,然后在每一个滴答中检查代码是否仍在类的范围内.一旦找到它,就可以执行查询.

令人毛骨悚然,但有可能.

标签:method-chaining,oop,php

来源: https://codeday.me/bug/20191028/1955773.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值