<?php
class Root {
public $domainList = array();
public function addDomain($domainName)
{
$domain = new Domain($domainName);
$this->domainList[$domainName] = $domain;
}
public function getDomain($domainName)
{
return $this->domainList[$domainName];
}
}
class Domain {
public $domainName = null;
public $memberList = array();
public function __construct($domainName) {
$this->domainName = $domainName;
}
public function addMember($email, $orders, $value) {
$member = new Member($this->domainName, $email, $orders, $value);
$this->memberList[$email] = $member;
}
public function getMember($memberName) {
return $this->memberList[$memberName];
}
}
class Member {
public $domain = null;
public $email = null;
public $orders = null;
public $value = null;
public function __construct($domain, $email, $orders, $value) {
$this->domain = $domain;
$this->email = $email;
$this->orders = $orders;
$this->value = $value;
}
public function getDomain() {
return $this->domain;
}
}
$root = new Root();
$root->addDomain("hotmail.com");
$root->addDomain("gmail.com");
$root->domainList["hotmail.com"]->addMember("john.doe",1,12);
$root->domainList["hotmail.com"]->addMember("jessie.anderson",1,12);
$root->domainList["hotmail.com"]->addMember("paul.whitney",1,12);
$root->domainList["gmail.com"]->addMember("alexis",1,12);
print_r($root->domainList["hotmail.com"]->getMember("john.doe")); print_r($root->getDomain["hotmail.com"]); ?>
PD9waHAgCmNsYXNzIFJvb3QgewoJCglwdWJsaWMgJGRvbWFpbkxpc3QgPSBhcnJheSgpOwoJCglwdWJsaWMgZnVuY3Rpb24gYWRkRG9tYWluKCRkb21haW5OYW1lKQoJewoJCSRkb21haW4gPSBuZXcgRG9tYWluKCRkb21haW5OYW1lKTsKCQkkdGhpcy0+ZG9tYWluTGlzdFskZG9tYWluTmFtZV0gPSAkZG9tYWluOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gZ2V0RG9tYWluKCRkb21haW5OYW1lKQoJewoJCXJldHVybiAkdGhpcy0+ZG9tYWluTGlzdFskZG9tYWluTmFtZV07Cgl9Cn0KCmNsYXNzIERvbWFpbiB7CgkKCXB1YmxpYyAkZG9tYWluTmFtZSA9IG51bGw7CglwdWJsaWMgJG1lbWJlckxpc3QgPSBhcnJheSgpOwoJCglwdWJsaWMgZnVuY3Rpb24gX19jb25zdHJ1Y3QoJGRvbWFpbk5hbWUpIHsKCQkkdGhpcy0+ZG9tYWluTmFtZSA9ICRkb21haW5OYW1lOwoJfQoJCglwdWJsaWMgZnVuY3Rpb24gYWRkTWVtYmVyKCRlbWFpbCwgJG9yZGVycywgJHZhbHVlKSB7CgkJJG1lbWJlciA9IG5ldyBNZW1iZXIoJHRoaXMtPmRvbWFpbk5hbWUsICRlbWFpbCwgJG9yZGVycywgJHZhbHVlKTsKCQkkdGhpcy0+bWVtYmVyTGlzdFskZW1haWxdID0gJG1lbWJlcjsKCX0KCQoJcHVibGljIGZ1bmN0aW9uIGdldE1lbWJlcigkbWVtYmVyTmFtZSkgewoJCXJldHVybiAkdGhpcy0+bWVtYmVyTGlzdFskbWVtYmVyTmFtZV07Cgl9Cn0KCmNsYXNzIE1lbWJlciB7CgkKCXB1YmxpYyAkZG9tYWluID0gbnVsbDsKCXB1YmxpYyAkZW1haWwgPSBudWxsOwoJcHVibGljICRvcmRlcnMgPSBudWxsOwoJcHVibGljICR2YWx1ZSA9IG51bGw7CgkKCXB1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkZG9tYWluLCAkZW1haWwsICRvcmRlcnMsICR2YWx1ZSkgewoJCSR0aGlzLT5kb21haW4gPSAkZG9tYWluOwoJCSR0aGlzLT5lbWFpbCA9ICRlbWFpbDsKCQkkdGhpcy0+b3JkZXJzID0gJG9yZGVyczsKCQkkdGhpcy0+dmFsdWUgPSAkdmFsdWU7Cgl9CgkKCXB1YmxpYyBmdW5jdGlvbiBnZXREb21haW4oKSB7CgkJcmV0dXJuICR0aGlzLT5kb21haW47Cgl9Cgp9Cgokcm9vdCA9IG5ldyBSb290KCk7Cgokcm9vdC0+YWRkRG9tYWluKCJob3RtYWlsLmNvbSIpOwokcm9vdC0+YWRkRG9tYWluKCJnbWFpbC5jb20iKTsKJHJvb3QtPmRvbWFpbkxpc3RbImhvdG1haWwuY29tIl0tPmFkZE1lbWJlcigiam9obi5kb2UiLDEsMTIpOwokcm9vdC0+ZG9tYWluTGlzdFsiaG90bWFpbC5jb20iXS0+YWRkTWVtYmVyKCJqZXNzaWUuYW5kZXJzb24iLDEsMTIpOwokcm9vdC0+ZG9tYWluTGlzdFsiaG90bWFpbC5jb20iXS0+YWRkTWVtYmVyKCJwYXVsLndoaXRuZXkiLDEsMTIpOwokcm9vdC0+ZG9tYWluTGlzdFsiZ21haWwuY29tIl0tPmFkZE1lbWJlcigiYWxleGlzIiwxLDEyKTsKCnByaW50X3IoJHJvb3QtPmRvbWFpbkxpc3RbImhvdG1haWwuY29tIl0tPmdldE1lbWJlcigiam9obi5kb2UiKSk7CnByaW50X3IoJHJvb3QtPmdldERvbWFpblsiaG90bWFpbC5jb20iXSk7Cj8+