如何将类属性声明为对象?
我试过了:
public $objectname = new $Object();
但这没有用。另外,为什么要那样做呢?
只实例化该对象并使用其成员不是更好吗?
从有关类属性的PHP手册(重点是我的):
类成员变量称为“属性”。您可能还会看到使用其他术语(例如“属性”或“字段”)来引用它们,但是出于参考目的,我们将使用“属性”。它们是使用关键字public,protected或private之一定义的,后跟普通变量声明。该声明 可以包括一个初始化,但是此初始化必须是一个常量值 -也就是说,它必须能够在编译时进行评估,并且必须不依赖于运行时信息才能进行评估。
要么在构造函数(composition)中创建它
class Foo { protected $bar; public function __construct() { $this->bar = new Bar; } }
或将其注入到构造函数中聚合
class Foo { protected $bar; public function __construct(Bar $bar) { $this->bar = $bar; } }
或使用二传手注射。
class Foo { protected $bar; public function setBar(Bar $bar) { $this->bar = $bar } }
您想要聚合而不是合成。