zval *more;
int result;
- zend_call_method_with_0_params(&object, iter->ce, &iter->ce->iterator_funcs.zf_has_more, "hasmore", &more);
+ zend_call_method_with_0_params(&object, iter->ce, &iter->ce->iterator_funcs.zf_has_more, "valid", &more);
if (more) {
result = i_zend_is_true(more);
zval_ptr_dtor(&more);
ZEND_ABSTRACT_ME(iterator, current, NULL)
ZEND_ABSTRACT_ME(iterator, next, NULL)
ZEND_ABSTRACT_ME(iterator, key, NULL)
- ZEND_ABSTRACT_ME(iterator, hasMore, NULL)
+ ZEND_ABSTRACT_ME(iterator, valid, NULL)
ZEND_ABSTRACT_ME(iterator, rewind, NULL)
{NULL, NULL, NULL}
};
function next()
{
- if ($this->more = $this->it->hasMore()) {
+ if ($this->more = $this->it->valid()) {
$this->current = $this->it->current();
$this->key = $this->it->key();
if ($this->flags & CIT_CALL_TOSTRING) {
$this->it->next();
}
- function hasMore()
+ function valid()
{
return $this->more;
}
function hasNext()
{
- return $this->it->hasMore();
+ return $this->it->valid();
}
function current()
/**
* @return Whether more elements are available.
*/
- function hasMore() {
+ function valid() {
if ($this->db && $this->key !== false) {
return true;
} else {
* @return void
*/
protected function fetch() {
- while ($this->it->hasMore()) {
+ while ($this->it->valid()) {
if ($this->accept()) {
return;
}
/**
* @return Whether more elements are available
*/
- function hasMore() {
- return $this->it->hasMore();
+ function valid() {
+ return $this->it->valid();
}
/**
protected function fetch() {
$this->key = false;
$this->curr = false;
- while ($this->it->hasMore()) {
+ while ($this->it->valid()) {
$key = $this->it->key();
if (ereg($this->regex, $key)) {
$this->key = $key;
/**
* @return Whether more elements are available
*/
- function hasMore() {
+ function valid() {
return $this->key !== false;
}
$this->it->seek($position);
$this->pos = $position;
} else {
- while($this->pos < $position && $this->it->hasMore()) {
+ while($this->pos < $position && $this->it->valid()) {
$this->next();
}
}
$this->seek($this->offset);
}
- function hasMore() {
+ function valid() {
return ($this->count == -1 || $this->pos < $this->offset + $this->count)
- && $this->it->hasMore();
+ && $this->it->valid();
}
function key() {
$this->ait[0]->recursed = false;
}
- function hasMore()
+ function valid()
{
$count = $this->count;
while ($count) {
$it = $this->ait[$count];
- if ($it->hasMore()) {
+ if ($it->valid()) {
return true;
}
$count--;
{
while ($this->count) {
$it = $this->ait[$this->count];
- if ($it->hasMore()) {
+ if ($it->valid()) {
if (!$it->recursed && $it->hasChildren()) {
$it->recursed = true;
$sub = $it->getChildren();
$sub->recursed = false;
$sub->rewind();
- if ($sub->hasMore()) {
+ if ($sub->valid()) {
$this->ait[++$this->count] = $sub;
if (!$sub instanceof RecursiveIterator) {
throw new Exception(get_class($sub).'::getChildren() must return an object that implements RecursiveIterator');
}
$it->next();
$it->recursed = false;
- if ($it->hasMore()) {
+ if ($it->valid()) {
return;
}
$it->recursed = false;
$this->done = false;
}
- function hasMore() {
- return !$this->done && parent::hasMore();
+ function valid() {
+ return !$this->done && parent::valid();
}
function next() {
function seek($index);
/* $this->rewind();
$position = 0;
- while($position < $index && $this->hasMore()) {
+ while($position < $index && $this->valid()) {
$this->next();
$position++;
}
/** Check if there is a current element after calls to rewind() or next().
*/
- function hasMore();
+ function valid();
}
/** Interface for recursive traversal to be used with
*/
function next();
- /** \copydoc Iterator::hasMore
+ /** \copydoc Iterator::valid
*/
- function hasMore();
+ function valid();
}
/** Iterator that wrapps around another iterator and only returns selected
*/
function next();
- /** \copydoc Iterator::hasMore
+ /** \copydoc Iterator::valid
*/
- function hasMore();
+ function valid();
}
/** A recursive iterator that only returns elements that themselves can be
*/
function next();
- /** \copydoc Iterator::hasMore
+ /** \copydoc Iterator::valid
*/
- function hasMore();
+ function valid();
}
/** \brief Directory iterator
*/
function next();
- /** \copydoc Iterator::hasMore
+ /** \copydoc Iterator::valid
*/
- function hasMore();
+ function valid();
/** \return The opened path.
*/
*/
function next();
- /** \copydoc Iterator::hasMore
+ /** \copydoc Iterator::valid
*/
- function hasMore();
+ function valid();
/** \return whether the current is a directory (not '.' or '..').
*/
SPL_METHOD(Array, current);
SPL_METHOD(Array, key);
SPL_METHOD(Array, next);
-SPL_METHOD(Array, hasMore);
+SPL_METHOD(Array, valid);
static
ZEND_BEGIN_ARG_INFO(arginfo_array___construct, 0)
SPL_ME(Array, current, NULL, ZEND_ACC_PUBLIC)
SPL_ME(Array, key, NULL, ZEND_ACC_PUBLIC)
SPL_ME(Array, next, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(Array, hasMore, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(Array, valid, NULL, ZEND_ACC_PUBLIC)
{NULL, NULL, NULL}
};
}
/* }}} */
-/* {{{ proto bool ArrayIterator::hasMore()
+/* {{{ proto bool ArrayIterator::valid()
Check whether array contains more entries */
-SPL_METHOD(Array, hasMore)
+SPL_METHOD(Array, valid)
{
zval *object = getThis();
spl_array_object *intern = (spl_array_object*)zend_object_store_get_object(object TSRMLS_CC);
}
/* }}} */
-/* {{{ proto string DirectoryIterator::hasMore()
+/* {{{ proto string DirectoryIterator::valid()
Check whether dir contains more entries */
-SPL_METHOD(DirectoryIterator, hasMore)
+SPL_METHOD(DirectoryIterator, valid)
{
zval *object = getThis();
spl_ce_dir_object *intern = (spl_ce_dir_object*)zend_object_store_get_object(object TSRMLS_CC);
static zend_function_entry spl_ce_dir_class_functions[] = {
SPL_ME(DirectoryIterator, __construct, arginfo_dir___construct, ZEND_ACC_PUBLIC)
SPL_ME(DirectoryIterator, rewind, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(DirectoryIterator, hasMore, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(DirectoryIterator, valid, NULL, ZEND_ACC_PUBLIC)
SPL_ME(DirectoryIterator, key, NULL, ZEND_ACC_PUBLIC)
SPL_ME(DirectoryIterator, current, NULL, ZEND_ACC_PUBLIC)
SPL_ME(DirectoryIterator, next, NULL, ZEND_ACC_PUBLIC)
SPL_METHOD(RecursiveIteratorIterator, __construct);
SPL_METHOD(RecursiveIteratorIterator, rewind);
-SPL_METHOD(RecursiveIteratorIterator, hasMore);
+SPL_METHOD(RecursiveIteratorIterator, valid);
SPL_METHOD(RecursiveIteratorIterator, key);
SPL_METHOD(RecursiveIteratorIterator, current);
SPL_METHOD(RecursiveIteratorIterator, next);
static zend_function_entry spl_funcs_RecursiveIteratorIterator[] = {
SPL_ME(RecursiveIteratorIterator, __construct, arginfo_recursive_it___construct, ZEND_ACC_PUBLIC)
SPL_ME(RecursiveIteratorIterator, rewind, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(RecursiveIteratorIterator, hasMore, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(RecursiveIteratorIterator, valid, NULL, ZEND_ACC_PUBLIC)
SPL_ME(RecursiveIteratorIterator, key, NULL, ZEND_ACC_PUBLIC)
SPL_ME(RecursiveIteratorIterator, current, NULL, ZEND_ACC_PUBLIC)
SPL_ME(RecursiveIteratorIterator, next, NULL, ZEND_ACC_PUBLIC)
spl_recursive_it_rewind_ex(object TSRMLS_CC);
}
-SPL_METHOD(RecursiveIteratorIterator, hasMore)
+SPL_METHOD(RecursiveIteratorIterator, valid)
{
spl_recursive_it_object *object = (spl_recursive_it_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
spl_dual_it_fetch(intern, 1 TSRMLS_CC);
}
-SPL_METHOD(dual_it, hasMore)
+SPL_METHOD(dual_it, valid)
{
spl_dual_it_object *intern;
static zend_function_entry spl_funcs_FilterIterator[] = {
SPL_ME(dual_it, __construct, arginfo_filter_it___construct, ZEND_ACC_PUBLIC)
SPL_ME(FilterIterator, rewind, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(dual_it, hasMore, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(dual_it, valid, NULL, ZEND_ACC_PUBLIC)
SPL_ME(dual_it, key, NULL, ZEND_ACC_PUBLIC)
SPL_ME(dual_it, current, NULL, ZEND_ACC_PUBLIC)
SPL_ME(FilterIterator, next, NULL, ZEND_ACC_PUBLIC)
spl_limit_it_seek(intern, intern->u.limit.offset TSRMLS_CC);
}
-SPL_METHOD(LimitIterator, hasMore)
+SPL_METHOD(LimitIterator, valid)
{
spl_dual_it_object *intern;
static zend_function_entry spl_funcs_LimitIterator[] = {
SPL_ME(LimitIterator, __construct, arginfo_limit_it___construct, ZEND_ACC_PUBLIC)
SPL_ME(LimitIterator, rewind, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(LimitIterator, hasMore, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(LimitIterator, valid, NULL, ZEND_ACC_PUBLIC)
SPL_ME(dual_it, key, NULL, ZEND_ACC_PUBLIC)
SPL_ME(dual_it, current, NULL, ZEND_ACC_PUBLIC)
SPL_ME(LimitIterator, next, NULL, ZEND_ACC_PUBLIC)
spl_caching_it_rewind(intern TSRMLS_CC);
}
-SPL_METHOD(CachingIterator, hasMore)
+SPL_METHOD(CachingIterator, valid)
{
spl_dual_it_object *intern;
static zend_function_entry spl_funcs_CachingIterator[] = {
SPL_ME(CachingIterator, __construct, arginfo_caching_it___construct, ZEND_ACC_PUBLIC)
SPL_ME(CachingIterator, rewind, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(CachingIterator, hasMore, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(CachingIterator, valid, NULL, ZEND_ACC_PUBLIC)
SPL_ME(dual_it, key, NULL, ZEND_ACC_PUBLIC)
SPL_ME(dual_it, current, NULL, ZEND_ACC_PUBLIC)
SPL_ME(CachingIterator, next, NULL, ZEND_ACC_PUBLIC)
}
/* }}} */
-SPL_METHOD(SimpleXMLIterator, hasMore) /* {{{ */
+SPL_METHOD(SimpleXMLIterator, valid) /* {{{ */
{
php_sxe_object *sxe = php_sxe_fetch_object(getThis() TSRMLS_CC);
static zend_function_entry spl_funcs_SimpleXMLIterator[] = {
SPL_ME(SimpleXMLIterator, rewind, NULL, ZEND_ACC_PUBLIC)
- SPL_ME(SimpleXMLIterator, hasMore, NULL, ZEND_ACC_PUBLIC)
+ SPL_ME(SimpleXMLIterator, valid, NULL, ZEND_ACC_PUBLIC)
SPL_ME(SimpleXMLIterator, current, NULL, ZEND_ACC_PUBLIC)
SPL_ME(SimpleXMLIterator, key, NULL, ZEND_ACC_PUBLIC)
SPL_ME(SimpleXMLIterator, next, NULL, ZEND_ACC_PUBLIC)
Notice: ArrayIterator::next(): Array was modified outside object and is no longer an array in %sarray_iterator.php on line %d
-Notice: ArrayIterator::hasMore(): Array was modified outside object and is no longer an array in %sarray_iterator.php on line %d
+Notice: ArrayIterator::valid(): Array was modified outside object and is no longer an array in %sarray_iterator.php on line %d
Notice: ArrayIterator::next(): Array was modified outside object and is no longer an array in %sarray_iterator.php on line %d
-Notice: ArrayIterator::hasMore(): Array was modified outside object and is no longer an array in %sarray_iterator.php on line %d
+Notice: ArrayIterator::valid(): Array was modified outside object and is no longer an array in %sarray_iterator.php on line %d
Done
$this->i = 0;
}
- public function hasMore()
+ public function valid()
{
$ret = $this->i < count($this->a);
echo __METHOD__ . '(' . ($ret ? 'true' : 'false') . ")\n";
--EXPECT--
NumericArrayIterator::__construct
NumericArrayIterator::rewind
-NumericArrayIterator::hasMore(true)
+NumericArrayIterator::valid(true)
NumericArrayIterator::next
-NumericArrayIterator::hasMore(true)
-NumericArrayIterator::hasMore(true)
+NumericArrayIterator::valid(true)
+NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
2
NumericArrayIterator::next
-NumericArrayIterator::hasMore(true)
+NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
3
NumericArrayIterator::next
-NumericArrayIterator::hasMore(true)
+NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
4
NumericArrayIterator::__construct
NumericArrayIterator::rewind
SeekableNumericArrayIterator::seek(1)
-NumericArrayIterator::hasMore(true)
+NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
2
NumericArrayIterator::next
-NumericArrayIterator::hasMore(true)
+NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
3
NumericArrayIterator::next
-NumericArrayIterator::hasMore(true)
+NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
4
===SEEKING===
NumericArrayIterator::__construct
SeekableNumericArrayIterator::seek(1)
-NumericArrayIterator::hasMore(true)
+NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
2
SeekableNumericArrayIterator::seek(2)
-NumericArrayIterator::hasMore(true)
+NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
3
SeekableNumericArrayIterator::seek(3)
-NumericArrayIterator::hasMore(true)
+NumericArrayIterator::valid(true)
NumericArrayIterator::current
NumericArrayIterator::key
4
echo "===RESET===\n";
-for ($sxe->rewind(); $sxe->hasMore(); $sxe->next()) {
+for ($sxe->rewind(); $sxe->valid(); $sxe->next()) {
var_dump($sxe->hasChildren());
var_dump(trim($sxe->key()));
var_dump(trim($sxe->current()));
/* spl_forward */
PHP_ME_MAPPING(current, sqlite_current, NULL)
PHP_ME_MAPPING(next, sqlite_next, NULL)
- PHP_ME_MAPPING(hasmore, sqlite_has_more, NULL)
+ PHP_ME_MAPPING(valid, sqlite_has_more, NULL)
/* spl_sequence */
PHP_ME_MAPPING(rewind, sqlite_rewind, NULL)
/* additional */
/* spl_forward */
PHP_ME_MAPPING(current, sqlite_current, NULL)
PHP_ME_MAPPING(next, sqlite_next, NULL)
- PHP_ME_MAPPING(hasmore, sqlite_has_more, NULL)
+ PHP_ME_MAPPING(valid, sqlite_has_more, NULL)
{NULL, NULL, NULL}
};
}
$r = $db->unbuffered_query("SELECT a from strings", SQLITE_NUM);
-while ($row = $r->hasMore()) {
+while ($row = $r->valid()) {
var_dump($r->current());
$r->next();
}
echo "====BUFFERED====\n";
$r = $db->query("SELECT a, b from strings");
-while ($r->hasMore()) {
+while ($r->valid()) {
var_dump($r->current(SQLITE_NUM));
var_dump($r->column(0));
var_dump($r->column(1));
}
echo "====UNBUFFERED====\n";
$r = $db->unbuffered_query("SELECT a, b from strings");
-while ($r->hasMore()) {
+while ($r->valid()) {
var_dump($r->column(0));
var_dump($r->column('b'));
var_dump($r->column(1));
echo "====BUFFERED====\n";
$r = $db->query("SELECT a, b from strings");
-while ($r->hasMore()) {
+while ($r->valid()) {
var_dump($r->fetch_single());
}
echo "====UNBUFFERED====\n";
$r = $db->unbuffered_query("SELECT a, b from strings");
-while ($r->hasMore()) {
+while ($r->valid()) {
var_dump($r->fetch_single());
}
echo "DONE!\n";
} catch(sqlite_exception $err) {
echo "Message: ".$err->getMessage()."\n";
echo "File: ".$err->getFile()."\n";
+ echo "File: ".$err->getCode()."\n";
+ echo "Line: ".$err->getLine()."\n";
+ print_r($err->getTrace());
+ echo "BackTrace: ".$err->getTraceAsString()."\n";
}
$db = sqlite_factory($dbname);
}
$r = $db->unbuffered_query("SELECT a, b from strings");
-while ($r->hasMore()) {
+while ($r->valid()) {
var_dump($r->current(SQLITE_NUM));
$r->next();
}
echo "====class24====\n";
$res = $db->query("SELECT a FROM strings", SQLITE_ASSOC);
-while ($res->hasMore()) {
+while ($res->valid()) {
var_dump($res->fetch_object('class24'));
}
echo "====stdclass====\n";
$res = $db->query("SELECT a FROM strings", SQLITE_ASSOC);
-while ($res->hasMore()) {
+while ($res->valid()) {
var_dump($res->fetch_object());
}
}
echo "====FOR====\n";
$r = $db->unbuffered_query("SELECT a from strings", SQLITE_NUM);
-for(;$r->hasMore(); $r->next()) {
+for(;$r->valid(); $r->next()) {
$v = $r->column(0);
var_dump($v);
$c = $r->column(0);
$this->fetch();
}
- function hasMore()
+ function valid()
{
return is_object($this->entry);
}
}
function rewind() {
}
- function hasMore() {
+ function valid() {
$more = $this->num < $this->obj->max;
echo __METHOD__ . ' = ' .($more ? 'true' : 'false') . "\n";
return $more;
echo "===Manual===\n";
$t = new c();
-for ($iter = $t->getIterator(); $iter->hasMore(); $iter->next()) {
+for ($iter = $t->getIterator(); $iter->valid(); $iter->next()) {
echo $iter->current() . "\n";
}
===Manual===
c::getIterator
c_iter::__construct
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
0
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
1
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
2
c_iter::next
-c_iter::hasMore = false
+c_iter::valid = false
===foreach/std===
c::getIterator
c_iter::__construct
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
object:0
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
object:1
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
object:2
c_iter::next
-c_iter::hasMore = false
+c_iter::valid = false
===foreach/rec===
c::getIterator
c_iter::__construct
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
c::getIterator
c_iter::__construct
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:0:0
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:0:1
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:0:2
c_iter::next
-c_iter::hasMore = false
+c_iter::valid = false
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
c::getIterator
c_iter::__construct
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:1:0
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:1:1
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:1:2
c_iter::next
-c_iter::hasMore = false
+c_iter::valid = false
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
c::getIterator
c_iter::__construct
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:2:0
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:2:1
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:2:2
c_iter::next
-c_iter::hasMore = false
+c_iter::valid = false
c_iter::next
-c_iter::hasMore = false
+c_iter::valid = false
===foreach/key===
c::getIterator
c_iter::__construct
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
object:1st=>0
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
object:2nd=>1
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
object:3rd=>2
c_iter::next
-c_iter::hasMore = false
+c_iter::valid = false
Done
echo __METHOD__ . "\n";
$this->num = 0;
}
- function hasMore() {
+ function valid() {
$more = $this->num < $this->obj->max;
echo __METHOD__ . ' = ' .($more ? 'true' : 'false') . "\n";
return $more;
c::getIterator
c_iter::__construct
c_iter::rewind
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
c::getIterator
c_iter::__construct
c_iter::rewind
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:0:0
c_iter::__destruct
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
c::getIterator
c_iter::__construct
c_iter::rewind
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:1:0
c_iter::__destruct
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
c::getIterator
c_iter::__construct
c_iter::rewind
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c_iter::key
double:2:0
c_iter::__destruct
c_iter::next
-c_iter::hasMore = false
+c_iter::valid = false
c_iter::__destruct
c::__destruct
Done
function rewind() {
echo __METHOD__ . "\n";
}
- function hasMore() {
+ function valid() {
$more = $this->num < $this->obj->max;
echo __METHOD__ . ' = ' .($more ? 'true' : 'false') . "\n";
return $more;
c::getIterator
c_iter::__construct
c_iter::rewind
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
continue outer
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c::getIterator
c_iter::__construct
c_iter::rewind
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
double:1:0
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
continue inner
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
break inner
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
c::getIterator
c_iter::__construct
c_iter::rewind
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
double:2:0
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
continue inner
c_iter::next
-c_iter::hasMore = true
+c_iter::valid = true
c_iter::current
break inner
break outer
echo __METHOD__ . "\n";
$this->num++;
}
- function hasMore() {
+ function valid() {
echo __METHOD__ . "\n";
return $this->num < $this->max;
}
$this->next();
}
- function hasMore() {
+ function valid() {
return $this->key !== NULL;
}
#$array = $array->getIterator();
#$array->rewind();
-#$array->hasMore();
+#$array->valid();
#var_dump($array->key());
#var_dump($array->current());
echo "===2nd===\n";