我已经开始在我的 PHP 应用程序中使用方法链:
$object->do()->something();
特别是查询数据库:
$database->select()->from('mytable');
但是目前我需要调用一个函数来在最后实际执行查询:
$database->select()->from('mytable')->perform();
这很烦人,因为通常每个链都会立即执行。有时不会,但十分之九会。我需要它来处理任何对象,而不仅仅是数据库处理程序。
有没有办法判断我调用的最后一个方法是否是方法本身的最后一个方法,所以perform()
不需要我告诉它?
如果没有,我可能会尝试使用一些关键字,例如->now()
而不是->perform()
我有几个想法:
- 每个方法都有一个参数,如果设置它会让它知道它在最后(也许它可以遍历所有参数以查找是否传递了特殊常量?)例如
$object->do()->something(now);