Проблема в том, что ты делаешь echo ($n).' ' вне функции.
Правильнее было бы сделать так:
function nums_from($n=1, $i=0) {
if ($n > $i){
echo ($n).' ' ;
nums($n + $i);
}
}
nums_from();
Но в таком варианте функция никогда не выйдет из рекурсии.
Возможный вариант решения:
function nums_from($count =1, $n=1, $i=0) { // здесь $count это сколько раз должна выполнится функция
if ($count--){ // проверяем на истинность(не 0), и сразу уменьшаем значение
echo ($n).' ' ;
nums($count, $n + $i);
}
}
nums_from(10); // функция выполнится 10 раз