Вероятно, вам не нужен метод main, который, похоже, представляет собой тестовую установку, показывающую, как вызывать другой метод.
Проблема отображения этого кода непосредственно в PHP заключается в том, что вы не можете перегрузить имена методов в PHP. Вместо этого вы должны сосредоточиться на переводе второй версии функции showPartitions. Если вам нужна версия с двумя аргументами, вы можете использовать значения по умолчанию для префикса и параметров запуска (для этого вам нужно изменить порядок параметров, потому что в PHP необязательные параметры должны стоять последними).
Вот моя (не проверенная) попытка перевести наиболее важную функцию:
function showPartitions($prefix, $start, $finish, $numLeft)
{
if ($numLeft == 0 && $start == $finish) {
echo $prefix."\n";
} else {
$prefix .= "|";
for ($i = $start + 1; $i <= $finish; $i++) {
$prefix .= $i.",";
showPartitions($prefix, $i, $finish, $numLeft - 1);
}
}
}