将属性声明为对象?
如何将类属性声明为对象?
我试过了:
public $objectname = new $Object();
但它没有奏效。另外,你为什么要这样做?
只是实例化该对象并仅使用其成员不是更好吗?
如何将类属性声明为对象?
我试过了:
public $objectname = new $Object();
但它没有奏效。另外,你为什么要这样做?
只是实例化该对象并仅使用其成员不是更好吗?
从 PHP 关于类属性的手册(强调我的):
类成员变量称为“属性”。您可能还会看到它们使用其他术语(如“属性”或“字段”)引用,但出于本参考的目的,我们将使用“属性”。它们是通过使用关键字 public、protected 或 private 之一来定义的,后跟一个普通的变量声明。此声明可能包括初始化,但此初始化必须是常量值 -- 也就是说,它必须能够在编译时进行计算,并且不得依赖于运行时信息才能进行评估。
在构造函数(组合)
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
}
}
您希望支持聚合而不是组合。
如果您只想实例化为泛型类,则可以执行以下操作:
$objectname = new stdClass;
我不相信你可以在属性的声明中做到这一点,所以你只需要声明$objectname并在构造函数中将其设置为new stdClass。