我想知道如何在另一个对象中定义一个对象数组。
例如,假设我有一个名为" User"的类,另一个名为" Address&#34 ;.
用户可以列出无限数量的地址。我该怎么做?
我的猜测是我需要声明一个"地址" "用户"中的对象上课,但我不知道该怎么做。
答案 0 :(得分:0)
class User {
private $address;
public function addAddress($street) {
$this->address[] = new Address($street);
}
public function getAddress($i) {
return $this->address[$i]->street;
}
}
class Address {
public $street;
public function __construct($s) {
$this->street = $s;
}
}
$u = new User;
$u->addAddress('abc');
$u->addAddress('def');
$u->addAddress('zzz');
echo $u->getAddress(2);
答案 1 :(得分:0)
创建一个具有数组属性的类,然后添加到数组中:
<?php
class User
{
private $addresses = [];
public function addAddress(Address $address)
{
$this->addresses[] = $address;
}
public function getAddresses()
{
return $this->addresses;
}
}
class Address
{
private $street;
public function __construct($street)
{
$this->street = $street;
// ... etc
}
}
$user = new User();
$user->addAddress(new Address("Foo"));
$user->addAddress(new Address("Bar"));
var_dump($user->getAddresses());
答案 2 :(得分:-1)
您可以这样声明:
$user = new stdClass; // declare the user object
$user->firstName = "John"; // add firstName property
$user->lastName = "Doe"; // add lastName property
$user->addresses = array(); // add addresses property as an array
//declare a couple of dummy address objects
$address1 = new stdClass;
$adresss1->street = "Elm Street";
$address2 = new stdClass;
$adresss2->street = "Arlington Road";
//Add the generated address objects into the addresses array of the user
$user->adresses[] = $address1;
$user->adresses[] = $address2;
如果这有帮助,请告诉我。干杯!