3v4l.org

run code in 300+ PHP versions simultaneously
<?php final class ArrayUtils { private static $visited = []; private static $sum = 0; private static $data = []; public static function containsSum(array $data, int $sum): bool { self::$data = $data; self::$sum = $sum; self::$visited = []; return self::found(); } private static function found(): bool { if (! self::$data) { return false; } $value = array_pop(self::$data); if (isset(self::$visited[self::$sum - $value])) { return true; } self::$visited[$value] = true; // iterate recursively over the rest of data return self::found(); } } $data = range(0, 4999); shuffle($data); var_dump(ArrayUtils::containsSum($data, 1220)); var_dump(ArrayUtils::containsSum($data, -7));
Output for 7.1.0 - 7.1.23, 7.2.0 - 7.2.11
bool(true) bool(false)
Output for 5.6.38
Parse error: syntax error, unexpected ':', expecting ';' or '{' in /in/aDjvT on line 10
Process exited with code 255.

preferences:
69.2 ms | 401 KiB | 42 Q