{ private $emailAddress; public function getEmailAddress() { return $this->emailAddress; } public function setEmailAddress($address) { $this->emailAddress = $address; } } $emailAddress = new EmailAddress(); /* Populate the EmailAddress object */ $address = new AddressDisplay(); /* Here's the assignment code, where I'm assigning values from one object to another */ $address->setAddressType("email"); $address->setAddressText($emailAddress->getEmailAddress()); //适配器模式 class EmailAddressDisplayAdapter extends AddressDisplay { public function __construct($emailAddr) { $this->setAddressType("email"); $this->setAddressText($emailAddr->getEmailAddress()); } } $email = new EmailAddress(); $email->setEmailAddress("*****@*****.**"); $address = new EmailAddressDisplayAdapter($email); echo $address->getAddressType() . "\n"; echo $address->getAddressText();
<?php require_once 'classes.php'; $email1 = new EmailAddress(); $email1->setEmailAddress("*****@*****.**"); $email2 = new EmailAddress(); $email2->setEmailAddress("*****@*****.**"); $email3 = new EmailAddress(); $email3->setEmailAddress("*****@*****.**"); $emailAddresses = array($email1, $email2, $email3); echo "\nEmail Addresses: \n\n"; $itr = new EmailAddressIterator($emailAddresses); while ($itr->hasNext()) { $item = $itr->next(); echo $item->getAddressText() . "\n"; } echo "\nPhysical Addresses: \n\n"; /* Now add physical addresses... */ $pa1 = new PhysicalAddress("123 Any St.", "Anytown", "NE", "00000"); $pa2 = new PhysicalAddress("123 Any Blvd.", "Anytropolis", "MN", "00000"); $physicalAddresses = array($pa1, $pa2); $itr2 = new PhysicalAddressIterator($physicalAddresses); while ($itr2->hasNext()) { $item = $itr2->next(); echo $item->getAddressText() . "\n"; } /* Now the compound iterator! */ echo "\nIterating through both types of addresses:\n\n"; $itr3 = new PersonAddressIterator($emailAddresses, $physicalAddresses); while ($itr3->hasNext()) { $item = $itr3->next();