Fizz Buzz interview question code
Is it overkill to suggest such a solution? 


Yes, I think so :-)


  Under what conditions would you split it into a Model and Views? 


If you need more than one view. For example, if the specification says that the program should be able to write the results to the screen, a CSV/PDF file, a network socket, a web service etc.


  Are there any issues with the code?


It's fine, just three issues:


Naming: I'd rename $data to $result.
Input checks: 


What should happen when $start &gt; $end? (Check and throw an exception.)
What should happen when $period is not a number? (Throw an exception in the constructor.)

Unit tests are missing.



  Whether any changes were likely to be made in the future?


I would not try predicting it. If there are some change requests refactor it. The tests will show whether there is a regression or not. On Programmers.SE there are same questions about it:


Design for future changes or solve the problem at hand
Future proofing code