Когда ооп быстрее процедурного?
ООП рассчитано не на скорость исполнения, а на скорость разработки. Как, впрочем, и многие другие современные технологии разработки. Всё, что ООП делает, можно реализовать и без ООП, и даже эффективнее. Стоит ли — другой вопрос.
Какую задачу конкретно решает ООП? Обуздать сложность разработки программ, собранных из взаимодействующих компонентов. Вот от этого и пляшем: если программа не модульная (например, какой-нибудь сложный научный расчёт), ООП мало поможет. Также ООП не поможет, если стандартная реализация ООП недостаточно эффективна по процессору или по памяти — например, в мою бытность JavaMe’шником ООП не жаловали, поскольку памяти много ел, типичный мобильник имел от 215 до 800 килобайт доступной памяти. Также плохо будет работать там, где нет взаимодействия (на типичном PHP, который выдал страничку и исчез).
Что на PHP можно реализовать объектно?
• Поддержку каких-то протоколов (БД, почта, какая-нибудь внешняя веб-служба наподобие VK API или Mandrill).
• Что-нибудь из предметной отрасли, что меняет своё состояние — например, генерация картинок, звуков, архивов, PDF…
• Может, сделаешь какой-нибудь генератор страниц, который сначала собирает каркас страницы, а затем, в зависимости от настроек и целевого устройства, обращивает его HTML-кодом.
Про РНР не знаю, скажу на примере С/С++.
Если виртуальными функциями не пользоваться, то C и C++ дадут одинаковую эффективность.
Если пытаться один и тот же код, требующий run-time полиморфизма написать на C и на C++, то, вероятнее всего, код на C++ будет эффективней. Потому что у вас не хватит терпения аккуратно заполнять и использовать таблицы виртуальных функций, и получится код с большим количеством case, а то и if/else по тегам объектов. В конечном итоге, можно будет написать программу на C, эквивалентную программе на С++ (а потом её соптимизировать), но она будет сложной, непонятной, и практически нерасширяемой: добавление нового полиморфного метода в систему типов (с модификацией всех таблиц и всех методов, работающих с тегами) будет мучением.