Предыдущие комментарии об использовании абстрактных классов для общей реализации находятся определенно на метке. Одно преимущество, которое я не видел упомянутый еще, - то, что использование интерфейсов делает намного легче реализовать фиктивные объекты в целях поблочного тестирования. При определении IPet и PetBase, поскольку Jason Cohen описал, позволяет Вам дразнить различные условия данных легко, без издержек физической базы данных (пока Вы не решаете, что пора протестировать реальную вещь).
Я ничего не пишу то же здесь. Просто примечание журнала изменений из руководства PHP.
<час>Журнал изменений для продолжаются
Version Description
7.0.0 - continue outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.
5.4.0 continue 0; is no longer valid. In previous versions it was interpreted the same as continue 1;.
5.4.0 Removed the ability to pass in variables (e.g., $num = 2; continue $num;) as the numerical argument.
Журнал изменений для повреждения
Version Description
7.0.0 break outside of a loop or switch control structure is now detected at compile-time instead of run-time as before, and triggers an E_COMPILE_ERROR.
5.4.0 break 0; is no longer valid. In previous versions it was interpreted the same as break 1;.
5.4.0 Removed the ability to pass in variables (e.g., $num = 2; break $num;) as the numerical argument.