private function recursiveMembers($members, $instance, $path, $distance = 1, $found = false) { foreach ($members as $member) { $tmpObject = $this->getDataObject($member); if ($tmpObject) { $path[] = $member; if (!$instance->isMember($tmpObject) && !$instance->isMembership($tmpObject)) { $graphObject = new self($tmpObject); $objectMembers = $graphObject->members(); $distance++; return $this->recursiveMembers($objectMembers, $graphObject, $path, $distance); } else { $found = true; } } } return [$path, $distance, $found]; }