实例另一个类实例的参数中的一类

问题描述:

能有人请解释这是什么意思另一个类实例的参数中有一个类的实例:实例另一个类实例的参数中的一类

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

我理解的类和类实例的基础知识但从未见过类似上面的代码。这是什么意思? controllerObect是一个类,所以在参数中传递一个对象实例意味着什么?

所有这一切都意味着controllerObject构造函数接受类型为dependenciesObject的对象。

您实例化一个dependenciesObject并将其用作实例化一个controllerObject,它被分配到$controller。如果它可以帮助你理解,这相当于:

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

你正在做的是将$ controller分配给controllerObject的一个实例。

正如你所说的,controllerObject是一个带有构造函数的类,它需要对下列对象的引用:dependenciesObject类型。

 class controllerObject 
     { 
      function __construct(dependanciesObject $dependancies) 
      { 
       //etc 
      } 
     } 

这只是意味着controllerObject获取传递给它的构造函数的另一个对象。通过这样做 - 而不是在一个单独的变量中实例化一个dependenciesObject - 您不会为传递的对象创建一个全局变量,从而使全局变量的数量保持最小。

一个例子是如果controllerObject不能在没有它的情况下运行,则将数据库对象传递到controllerObject

与将任何其他参数传递给构造函数相同。例如,new controllerObject(5)

如果它有助于理解,用一个临时变量:

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