3v4l.org

run code in 300+ PHP versions simultaneously
<?php declare(strict_types=1); /** * @param array $elements * @param array $extra * * @return Generator */ function gen(array $elements, array $extra = []): \Generator { foreach ($elements as $i => $head) { foreach (gen(array_slice($elements, $i + 1), $extra) as $tail) { yield array_merge([$head], $tail); } } yield $extra; } foreach (gen(['O', 'U', 'W', 'P'], ['template']) as $path) { echo implode(' / ', $path), "\n"; }

preferences:
27.48 ms | 406 KiB | 5 Q