mirror of
https://github.com/php/php-src.git
synced 2024-09-23 10:57:26 +00:00
- Fix issue with RecursiveArrayIterator::getChildren()
This commit is contained in:
parent
cdb1746ac3
commit
b1fc84f584
@ -62,11 +62,6 @@ class SubClasses extends RecursiveArrayIterator
|
||||
}
|
||||
}
|
||||
|
||||
function getChildren()
|
||||
{
|
||||
return parent::current();
|
||||
}
|
||||
|
||||
function current()
|
||||
{
|
||||
return parent::key();
|
||||
|
@ -13,7 +13,7 @@
|
||||
* @brief A recursive array iterator
|
||||
* @author Marcus Boerger
|
||||
* @version 1.0
|
||||
* @since PHP 6.0
|
||||
* @since PHP 5.1
|
||||
*
|
||||
* Passes the RecursiveIterator interface to the inner Iterator and provides
|
||||
* the same functionality as FilterIterator. This allows you to skip parents
|
||||
@ -42,6 +42,10 @@ class RecursiveArrayIterator extends ArrayIterator implements RecursiveIterator
|
||||
*/
|
||||
function getChildren()
|
||||
{
|
||||
if ($this->current() instanceof self)
|
||||
{
|
||||
return $this->current();
|
||||
}
|
||||
if (empty($this->ref))
|
||||
{
|
||||
$this->ref = new ReflectionClass($this);
|
||||
|
@ -1204,6 +1204,10 @@ SPL_METHOD(Array, getChildren)
|
||||
return;
|
||||
}
|
||||
|
||||
if (Z_TYPE_PP(entry) == IS_OBJECT && instanceof_function(Z_OBJCE_PP(entry), Z_OBJCE_P(getThis()) TSRMLS_CC)) {
|
||||
RETURN_ZVAL(*entry, 0, 0);
|
||||
}
|
||||
|
||||
spl_instantiate_arg_ex1(Z_OBJCE_P(getThis()), &return_value, 0, *entry TSRMLS_CC);
|
||||
}
|
||||
/* }}} */
|
||||
|
Loading…
Reference in New Issue
Block a user