是否可以在PHP中链接函数调用


Is it possible to chain function calls in PHP?

如果我有这个函数

function function1 ( $myParameter ) {
...
}
function function2 ( $myParameter ) {
...
}
function function3 ( $myParameter ) {
...
}

当我呼叫时

function1( function2( function3( $myParameter ) ) )

我想这样打电话:

function3( $myParameter ) -> function2() -> function1()

function3($myParameter)作为参数发送到function2()

是否存在PHP插件(或其他插件)?

Thx

您可以通过返回实例(使用$this)来链接对象方法这里有一个微不足道的例子。

class foo {
    function function1() {
        echo "I'm function1'n";
        return $this;
    }
    function function2() {
        echo "I'm function2'n";
        return $this;
    }
    function function3() {
        echo "I'm function3'n";
        return $this;
    }
}

$bar = new foo();
$bar->function3()->function2()->function1();

您可以通过在对象上设置函数来实现这一点。由于我不知道域名,很难说这有多合理,但如果这只是你感兴趣的代码格式,你可以使用它。

<?php
class Functions
{
    protected $value;
    public function function1($param)
    {
        //do something
        return $this->value;
    }
    public function function2($param)
    {
        // do something to $this->value 
        return $this;
    }
    public function function3($param)
    {
        // do something to $this->value
        return $this;
    }
}
$class = new Functions();
$param = 'someVariable';
$result = $class->function3($param)->function2($param)->function1($param);

同样,在不了解领域的情况下,很难知道这种方法有多明智