Всё, что можно реализовать методами объектов, можно реализовать процедурами и переменными (в т.ч. массивами/кортежами/списками и другими структурами).Приведите пример, который реализован на ООП и не может быть реализован на процедурах.
Вопрос удобства..
Код:
function get_price($tovar) {
switch ($tovar['type']) {
case 'book': $price = isLikeBook()? $tovar['price']*1.01:$tovar['price'];
break;
case 'ball': ...
}
return $price;
}
Удобные и поначалу, возможно, непривычные особенности - инкапсуляция, полиморфизм, наследование... если научиться их готовить работают на пользу. Удобно, когда можно унаследоваться от компонента программы и переопределить любой метод.
В довесок, есть "паттерны проектирования", используя которые проще понимать/обсуждать архитектуру..
Бывает, начинаешь изобретать велосипед, а всё уже придумано до нас.. (с)