PHP类作为另一个类的参数

时间:2016-03-24 21:20:12

标签: php

我很抱歉这可能是一个简单的问题,但我在网上找不到任何相关信息。我有两个课程,为了这个帖子的目的,我们称他们为用户和地址,如下所示:

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;

我是在正确的轨道上还是离开了?

2 个答案:

答案 0 :(得分:0)

$address = new $address();

我相信这就是你要找的东西。

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

$user->address->zip

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

答案 1 :(得分:0)

试试这个;

<?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);
?>