<?php
require_once 'Employee.php';
require_once 'Employees.php';
require_once 'SalesmanIterator.php';
$employees = new Employees();
$employees->add(new Employee('SMITH', 32, 'CLERK'));
$employees->add(new Employee('ALLEN', 26, 'SALESMAN'));
$employees->add(new Employee('MARTIN', 50, 'SALESMAN'));
$employees->add(new Employee('CLARK', 45, 'MANAGER'));
$employees->add(new Employee('KING', 58, 'PRESIDENT'));
//「SALESMAN」のみを取り出す(foreachが暗黙的なイテレータとなる)
$iterator = $employees->getIterator();
$iterator = new SalesmanIterator($iterator);
echo '<ul>';
foreach ($iterator as $employee) {
echo '<li>';
echo $employee->getName() . ' / ';
echo $employee->getAge() . ' / ';
echo $employee->getJob();
echo '</li>';
}
echo '</ul>';
//すべて取り出す
$iterator = $employees->getIterator();
echo '<ul>';
foreach ($iterator as $employee) {
echo '<li>';
echo $employee->getName() . ' / ';
echo $employee->getAge() . ' / ';
echo $employee->getJob();
echo '</li>';
}
echo '</ul>';
//foreachを使わずに取り出す
$iterator = $employees->getIterator();
echo '<ul>';
while ($iterator->valid()) {
$employee = $iterator->current();
echo '<li>';
echo $employee->getName() . ' / ';
echo $employee->getAge() . ' / ';
echo $employee->getJob();
echo '</li>';
$iterator->next();
}
echo '</ul>';