/**
  * get book at current index
  *
  * @return Object
  */
 public function next()
 {
     /** @var Book $book */
     $book = $this->bookShelf->getBookAt($this->index);
     $this->index++;
     return $book;
 }
Beispiel #2
0
<?php

require 'interfaces/Aggregate.php';
require 'interfaces/Iterator.php';
require 'classes/Book.php';
require 'classes/BookShelf.php';
require 'classes/BookShelfIterator.php';
require 'classes/BookShelfReverseIterator.php';
use classes\Book;
use classes\BookShelf;
use classes\BookShelfIterator;
use classes\BookShelfReverseIterator;
$bookShelf = new BookShelf();
$bookShelf->appendBook(new Book('perfect php'));
$bookShelf->appendBook(new Book('perfect ruby'));
$bookShelf->appendBook(new Book('perfect java'));
$bookShelf->appendBook(new Book('perfect c++'));
$bookShelf->appendBook(new Book('perfect rails'));
/** @var BookShelfIterator $iterator */
$iterator = $bookShelf->iterator();
/** @var BookShelfReverseIterator $reverseIterator */
$reverseIterator = $bookShelf->reverseIterator();
echo "-------  Order -------\n";
while ($iterator->hasNext()) {
    /** @var Book $book */
    $book = $iterator->next();
    echo $book->getName() . "\n";
}
echo "------- Reverse Order -------\n";
while ($reverseIterator->hasNext()) {
    /** @var Book $book */
 /**
  * @return Object
  */
 public function next()
 {
     $book = $this->bookShelf->getBookAt($this->index);
     $this->index--;
     return $book;
 }