I agree that recursion are costly in PHP, so `moveUp(1, 10000)` probably will crash the script.
I think that refactoring moveUp (and Down) method to its iterative version is not difficult and will increase efficiency.

     for ($i = 0; $i < $number; $i++ {
         // logic here
    }