PHP初始化函数在方法调用结束时

时间:2014-07-29 08:24:40

标签: php oop

我试图用PHP

来做这件事
$query->select('username')->from('users')->execute();

我宁愿这样做

$query->select('username')->from('users');

是否有一个魔术函数允许在调用结束时启动像execute这样的函数并返回内容?

1 个答案:

答案 0 :(得分:3)

不,没有这样的事情。 PHP不知道这样的东西会“结束”。方法链只是简写:

$a = $foo->a();
$b = $a->b();
$c = $b->c();

没有办法确定这一系列调用何时会“结束”,并且不希望将行为绑定到这样的语法糖上。

如果你想做这样的事情该怎么办?

$a = $foo->a();

if ($bar) {
    $a->bar();
}

$a->b()->c();

if ($baz) {
    $a->baz();
}

$a->execute();