/** * @param array|\ArrayIterator $node * * @return array|\ArrayIterator */ private function findModifiedToNonStaticVar($node) { if (is_array($node) === true) { $nodes = $node; } elseif (is_string($node) === false && method_exists($node, 'getIterator') === true) { $nodes = $node->getIterator(); } else { return $node; } foreach ($nodes as $key => &$stmt) { if ($stmt instanceof Expr\ClassConstFetch) { $isMovedToNonStatic = $this->dispatcher->isMovedToNonStaticVar($stmt->name); if ($isMovedToNonStatic === true) { $var = new Expr\Variable('this->' . $stmt->name); if (is_array($node) === true) { $node[$key] = $var; } else { $node->{$key} = $var; } } } else { $stmt = $this->findModifiedToNonStaticVar($stmt); if (is_array($node) === true) { $node[$key] = $stmt; } else { $node->{$key} = $stmt; } } } return $node; }