ホームページ  >  記事  >  バックエンド開発  >  1 行のステートメントでクラスの複数のメソッドを呼び出すにはどうすればよいですか?

1 行のステートメントでクラスの複数のメソッドを呼び出すにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-06-23 13:50:331100ブラウズ

例:

$this->m_button6PaneInfo->Movable( false )->Dock()->Fixed()->BottomDockable( false )->TopDockable( false )->Layer( 10 )->ToolbarPane();

$this->m_button6PaneInfo はクラス インスタンスです。以下は、このクラスのすべてのメソッドです。
このステートメントは渡すことができません。少なくとも私の php バージョンでは渡すことができません。

複数行に分割する以外に、これをどのように変更すればよいでしょうか?正しく実行するには?
またはどのバージョンにアップグレードする必要がありますか?そうして初めて、このように書くことができます


ディスカッション (解決策) に返信します

これらのメソッドが $this を返す限り、失敗しません

これらのメソッドが $this を返す限り、失敗することはありません



失敗しないでください

明確なコードで表現してください:
<?phpclass testcls{	function fun1(){		echo 'fun1';	}	function fun2(){		echo 'fun1';	}	function fun3(){		echo 'fun3';	}}$test = new testcls();$test->fun1()->fun2()->fun3();?>

$test->fun1()->fun2()->fun3(); これは機能しません。

どうやって書けばいいですか? 1 行のステートメントで 3 つのメソッドを呼び出します。

class testcls{    function fun1(){        echo 'fun1';        return $this;    }    function fun2(){        echo 'fun1';        return $this;    }    function fun3(){        echo 'fun3';        return $this;    }}$test = new testcls();$test->fun1()->fun2()->fun3();
は次のように書きます 🎜 🎜 連鎖演算の前提として、各演算はオブジェクトそのものを返します。 🎜
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。