--TEST-- Phar::buildFromIterator() iterator, iterator returns non-string zip-based --SKIPIF-- --INI-- phar.require_hash=0 phar.readonly=0 --FILE-- a = $a; } function next() { echo "next\n"; return next($this->a); } function current() { echo "current\n"; return current($this->a); } function key() { echo "key\n"; return key($this->a); } function valid() { echo "valid\n"; return current($this->a); } function rewind() { echo "rewind\n"; return reset($this->a); } } try { chdir(__DIR__); $phar = new Phar(__DIR__ . '/buildfromiterator.phar.zip'); var_dump($phar->buildFromIterator(new myIterator(array('a' => new stdClass)))); } catch (Exception $e) { var_dump(get_class($e)); echo $e->getMessage() . "\n"; } ?> ===DONE=== --CLEAN-- --EXPECTF-- rewind valid current %s(24) "UnexpectedValueException" Iterator myIterator returned an invalid value (must return a string) ===DONE===