<?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>';