по простому и на практике, например
1)вам нужно подключить платёжку к сайту
а)написать взаимодействие с нуля самому (дорого и не рентабельно)
б)взять готовый класс, если нужно отнаследовать и переписать некоторые методы (быстрее и надёжнее)
2)берёте какую-то библиотеку (или даже CMS), например библ. IdiORM, код ядра (ядро это основные классы) не меняете, а наследуете в свой класс переписываете несколько нужных методов, через 5-10 лет код вашего проекта не устареет, так как ядро можно будет обновлять не поломав проекта, да и все косяки и уязвимости за 10 лет для вас устранятся путём обновление библиотеки или cms
3)ОПП позволить разрабатывать быстрее, например на основе готовых библиотек и фреймворков вставка записи в таблиц может выглядеть так
$obj = new myTable();
$obj->name = 'Ivan';
$obj->phone = '111-111-111';
$obj->save();
//этот код нагляден и универсален для sql и nosql баз и вообще любых хранилищ, не придётся переписывать проект целиком при смене базы
в функциональном стиле такого не реализовать
PS к сожалению не всё что реализовано на ООП, реализовано качественно. Есть примеры злоупотребления ООП и наоборот усложнения понимания кода, но это не значит, что не стоит пользоваться ООП подходом.