{$currentProperty})) { $nextObject = $object->{$currentProperty}; } elseif (is_array($object) && array_key_exists($currentProperty, $object)) { $nextObject = $object[$currentProperty]; } else { return null; } if (empty($pathSegments)) { return $nextObject; } return self::traverse($nextObject, $pathSegments); } }