0

こんにちは、OOP の初心者です。ただ聞きたいのですが、各関数に戻りクラスを配置せずに、クラスのインスタンスを自動的に返すにはどうすればよいですか? ここに私のコードがあります:

class myclass
{
    function myfinalOUtput()
    { 
        //blahblah
        return new myclass(); 
    }

    function get()
    { 
        //blahblah
        return new myclass();
    }

    function set()
    { 
        //blahblah
        return new myclass();
    }
} 

私は次のようなものが欲しい:

class myclass
{
    function myfinalOUtput()
    {}

    function get()
    {}

    function set()
    {}
} 

だから私はできる:

$class = new myclass();
$class->get()->set()->myfinalOUtput->();
4

3 に答える 3

3
return $this;

代わりにそれを置きreturn new myclass();ます...必要なのはそれだけです。オブジェクトを戻すだけです。

于 2012-06-11T06:48:48.623 に答える
2

これは、Fluent インターフェースおよびphpの実装と呼ばれます。

于 2012-06-11T06:56:56.033 に答える
0

あなたが探しているのは$this変数です:

class myclass
{
    function myfinalOUtput()
    { 
        //blahblah
        return $this; 
    }

    function get()
    { 
        //blahblah
        return $this;
    }

    function set()
    { 
        //blahblah
        return $this;
    }
}

これにより、メソッドの最後にインスタンスが返されるため、他のメソッドを呼び出すことができます。

$class = new myclass();
$class->get()->set()->myFinalOutput();
于 2012-06-11T06:48:50.490 に答える