$stack->reduce(create_function('$sum,$obj', 'printf("%s\\n", str($obj));'), ''); printf("Top is %s\n", str($stack->getTop())); printf("Popping\n"); while (!$stack->isEmpty()) { $obj = $stack->pop(); printf("%s\n", str($obj)); } $stack->push(box(2)); $stack->push(box(4)); $stack->push(box(6)); printf("%s\n", str($stack)); printf("Purging\n"); $stack->purge(); printf("%s\n", str($stack)); } /** * Main program. * * @param array $args Command-line arguments. * @return integer Zero on success; non-zero on failure. */ public static function main($args) { printf("AbstractStack main program.\n"); $status = 0; return $status; } } if (realpath($argv[0]) == realpath(__FILE__)) { exit(AbstractStack::main(array_slice($argv, 1))); }