Php 将属性声明为对象?
如何将类属性声明为对象 我试过:Php 将属性声明为对象?,php,oop,class,Php,Oop,Class,如何将类属性声明为对象 我试过: public $objectname = new $Object(); 但它不起作用。另外,你为什么要这样做 实例化该对象并使用其成员不是更好吗?PHP不支持显式键入类成员。所以你不能说: public Object $objectname; 如果类对象存在,并且您想要它的实例,请尝试: public $objectname = new Object(); 从(我的)重点: 类成员变量称为“属性”。您也可能会看到它们使用其他术语,如“属性”或“字段”,
public $objectname = new $Object();
但它不起作用。另外,你为什么要这样做
实例化该对象并使用其成员不是更好吗?PHP不支持显式键入类成员。所以你不能说:
public Object $objectname;
如果类对象存在,并且您想要它的实例,请尝试:
public $objectname = new Object();
从(我的)重点:
类成员变量称为“属性”。您也可能会看到它们使用其他术语,如“属性”或“字段”,但在本参考中,我们将使用“属性”。它们是通过使用关键字public、protected或private中的一个来定义的,后跟一个普通变量声明。此声明可能包括初始化,但此初始化必须是一个常量值——也就是说,它必须能够在编译时进行计算,并且不能依赖于运行时信息才能进行计算
在构造函数()中创建它
或者它在构造函数中()
或使用塞特注射
class Foo
{
protected $bar;
public function setBar(Bar $bar)
{
$this->bar = $bar
}
}
您需要。如果您只是希望实例化为泛型类,您可以执行以下操作:
$objectname = new stdClass;
我不相信你能在属性声明中做到这一点,所以你只需要声明$objectname,然后在构造函数中将其设置为new stdClass。你可以在构造函数区域创建一个新类,然后将其设置为new object
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;
聚合也称为“依赖项注入”,Fabien Povertier在这里有一个关于它的教程:这将产生一个致命错误,“常量表达式包含无效操作”
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;