0

誰かが別のクラスインスタンスの引数内にクラスインスタンスを持つことの意味を説明できますか?

$controller = new controllerObject(new dependenciesObject());

クラスとクラスインスタンスの基本は理解していますが、上記のようなコードはこれまで見たことがありません。どういう意味ですか?controllerObectはクラスですが、引数でオブジェクトインスタンスを渡すとはどういう意味ですか?

4

4 に答える 4

0

これはすべて、controllerObjectコンストラクターがタイプのオブジェクトを受け入れることを意味しますdependenciesObject

をインスタンス化しdependenciesObject、それを引数として使用して、controllerObjectに割り当てられているをインスタンス化します$controller。理解に役立つ場合、これは次と同等です。

$dependency = new dependenciesObject();
$controller = new controllerObject($dependency);
unset($dependency);
于 2012-11-22T17:05:48.633 に答える
0

あなたがしているのは、$controllerにcontrollerObjectのインスタンスを割り当てることです。

あなたが言ったように、controllerObjectは:dependenciesObjectタイプのオブジェクトへの参照を必要とするコンストラクターを持つクラスです。

     class controllerObject 
      {
           function __construct(dependanciesObject $dependancies)
            { 
                //etc
            }
       }
于 2012-11-22T17:07:12.623 に答える
0

controllerObjectこれは、が別のオブジェクトをコンストラクターに渡すことを意味します。このようにすることdependenciesObjectで(別の変数でインスタンス化する代わりに)、渡されたオブジェクトのグローバル変数を作成せず、グローバル変数の数を最小限に抑えます。

例として、データベースオブジェクトがないと機能できないcontrollerObject場合にデータベースオブジェクトをに渡すことができます。controllerObject

于 2012-11-22T17:07:56.900 に答える
0

new controllerObject(5)たとえば、他の引数をコンストラクターに渡すのと同じです。

理解に役立つ場合は、一時変数を使用してください。

$dependencies = new dependenciesObject();
$controller = new controllerObject($dependencies);
于 2012-11-22T17:08:34.733 に答える