如何将类属性声明为对象?
我尝试过:
public $objectname = new $Object();
但它没起作用。此外,为什么你要那样做呢?
直接实例化那个对象并使用它的成员不是更好吗?
类成员变量被称为“属性”。你可能也会看到它们被称为其他术语,比如“属性”或者“字段”,但是在本参考文档中我们将使用“属性”。它们通过使用关键字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
}
}
class CampaignGroupsProperty
{
public $id;
public $name;
}
class GetCampaignGroupsResponse
{
public $result;
public $resultCode;
public $campaignGroups;
public function __construct()
{
$this->campaignGroups = new CampaignGroupsProperty();
}
}
$response = new GetCampaignGroupsResponse();
$response->campaignGroups->id = 'whatever';
$response->result=true;
$objectname = new stdClass;
我不相信你可以在属性的声明中这样做,所以你只能声明 $objectname,然后在构造函数中将其设置为 new stdClass。
PHP不支持类成员的显式类型定义。因此,您无法这样说:
public Object $objectname;
Object
存在,并且您想要一个实例,请尝试: public $objectname = new Object();