<?php
class TheActualIterator implements Iterator {
function current() {}
function key() {}
function next() {}
function valid() {}
function rewind() {}
function getFoo() { return 'this is ' . get_class($this); }
function getbar() { return 'this is ' . get_class($this); }
}
class SomeRandomDecorator extends filteriterator {
function accept() { return true; }
}
$a = new TheActualIterator();
$b = new SomeRandomDecorator($a);
printf("Calling Foo() as foo(): %s\n", $b->getfoo());
printf("Calling Foo() as Foo(): %s\n", $b->getFoo());
printf("Calling Foo() as FOO(): %s\n", $b->getFOO());
printf("Calling bar() as bar(): %s\n", $b->getbar());
printf("Calling bar() as Bar(): %s\n", $b->getBar());
printf("Calling bar() as BAR(): %s\n", $b->getBAR());