Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将属性声明为对象?_Php_Oop_Class - Fatal编程技术网

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;