我很抱歉问了一个可能很简单的问题,但我在网上找不到任何关于它的信息。我有两个类,为了这篇文章的目的,让我们称它们为用户和地址,看起来像这样:
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
简而言之,是的,你走在了正确的轨道上。考虑将构造函数添加到类中。