printMenu();
addItem('煎饼1', '这是煎饼1', true, 5.5);
$this->addItem('煎饼2', '这是煎饼2', true, 6.5);
$this->addItem('煎饼3', '这是煎饼3', true, 7.5);
}
protected function addItem($name, $description, $vegetarian, $price) {
$menu_item = new MenuItem($name, $description, $vegetarian, $price);
$this->_menu_items[] = $menu_item;
}
public function getIterator() {
yield new MenuItem('煎饼1', '这是煎饼1', true, 5.5);
yield new MenuItem('煎饼2', '这是煎饼2', true, 6.5);
yield new MenuItem('煎饼3', '这是煎饼3', true, 7.5);
}
public function createIterator() {
return new PancakeMenuIterator($this->_menu_items);
}
}
addItem('宫保鸡丁', '宫保鸡丁描述', true, 12);
$this->addItem('鱼香肉丝', '鱼香肉丝描述', true, 16);
$this->addItem('火爆腰花', '火爆腰花描述', true, 35);
}
protected function addItem($name, $description, $vegetarian, $price) {
$menu_item = new MenuItem($name, $description, $vegetarian, $price);
$this->_menu_items[] = $menu_item;
}
public function createIterator() {
return new DinerMenuIterator($this->_menu_items);
}
}
_menu_items = $menu_items;
}
public function hasNext() {
return isset($this->_menu_items[$this->_position]);
}
public function next() {
$current_item = $this->_menu_items[$this->_position] ?? null;
$this->_position ++;
return $current_item;
}
}
_menu_items = $menu_items;
}
public function hasNext() {
return isset($this->_menu_items[$this->_position]);
}
public function next() {
$current_item = $this->_menu_items[$this->_position] ?? null;
$this->_position ++;
return $current_item;
}
}
_name = $name;
$this->_description = $description;
$this->_vegetarian = $vegetarian;
$this->_price = $price;
}
/**
* @return mixed
*/
public function getName() {
return $this->_name;
}
/**
* @return mixed
*/
public function getDescription() {
return $this->_description;
}
/**
* @return mixed
*/
public function getPrice() {
return $this->_price;
}
/**
* @return mixed
*/
public function getVegetarian() {
return $this->_vegetarian;
}
}
_pancake_house_menu = $pancake_house_menu;
$this->_diner_menu = $diner_menu;
}
public function printMenu() {
echo 'Breakfast Menu:', PHP_EOL;
echo '=================', PHP_EOL;
$pancake_iterator = $this->_pancake_house_menu->createIterator();
$this->printMenuByIterator($pancake_iterator);
echo PHP_EOL;
echo 'Lunch Menu:', PHP_EOL;
echo '=================', PHP_EOL;
$diner_iterator = $this->_diner_menu->createIterator();
$this->printMenuByIterator($diner_iterator);
}
protected function printMenuByIterator(MenuIterator $iterator) {
while($iterator->hasNext()) {
$menu_item = $iterator->next();
echo 'name: ', $menu_item->getName(), PHP_EOL;
echo 'price: ', $menu_item->getPrice(), PHP_EOL;
echo 'description: ', $menu_item->getDescription(), PHP_EOL;
echo 'vegetarian: ', $menu_item->getVegetarian(), PHP_EOL;
}
}
}