PMA\libraries\Footer::_removeRecursion PHP Метод

_removeRecursion() приватный статический Метод

Remove recursions and iterator objects from an object
private static _removeRecursion ( &$object, array $stack = [] ) : object
$stack array Stack used to keep track of recursion, need not be passed for the first time
Результат object Reference passed object
    private static function _removeRecursion(&$object, $stack = array())
    {
        if ((is_object($object) || is_array($object)) && $object) {
            if ($object instanceof Traversable) {
                $object = "***ITERATOR***";
            } else {
                if (!in_array($object, $stack, true)) {
                    $stack[] = $object;
                    foreach ($object as &$subobject) {
                        self::_removeRecursion($subobject, $stack);
                    }
                } else {
                    $object = "***RECURSION***";
                }
            }
        }
        return $object;
    }