PHP类作为另一个类的参数


PHP Class as a Parameter of another class

我很抱歉问了一个可能很简单的问题,但我在网上找不到任何关于它的信息。我有两个类,为了这篇文章的目的,让我们称它们为用户和地址,看起来像这样:

class user {
  public $firstName;
  public $lastName;
  public $address;
}
class address{
  public $streetAddress;
  public $streetName;
  public $city;
  public $state;
  public $zip;
}

在这种情况下,我希望用户类中的$address参数是由第二个类定义的"address"类型。我可以用PHP做这件事吗?我的最终目标是能够消费这样的属性:

$userZip = $user->address->zip;

我是走对了路还是走错了路?

这样尝试;

<?php
class user {
    public $firstName='bulent';
    public $lastName ='kocaman';
    public $address;
    public function __construct()
    {
        $this->address = new address();
    }
}
class address{
    public $streetAddress=1;
    public $streetName=2;
    public $city=3;
    public $state=4;
    public $zip=5;
}
$user = new user();
print_r($user->address->zip);
?>

<?php
class user extends address{
    public $firstName='bulent';
    public $lastName ='kocaman';
}
class address{
    public $streetAddress=1;
    public $streetName=2;
    public $city=3;
    public $state=4;
    public $zip=5;
}
$user = new user();
print_r($user->zip);
?>
$address = new $address();

我相信这就是你想要的。

在PHP中,变量类型是由分配给它们的数据定义的。如果你希望类1中的$address是$address(类2)类型,那么你所要做的就是将其分配给$address的实例,它将采用该类型。然后,您将能够通过以下方式访问任何$address属性:

$user->address->zip

简而言之,是的,你走在了正确的轨道上。考虑将构造函数添加到类中。