Я категорически не согласен с ответом Chacha102.
Правильный ответ на этот вопрос занял бы несколько книг, не говоря уже о 20-строчном посте.
Оба подхода имеют свои преимущества и недостатки. Я бы порекомендовал всем, кто хочет считать себя хорошим программистом, иметь значительный опыт в процедурном, непроцедурном и объектно-ориентированном программировании. А также опыт работы с различными методологиями, такими как SCRUM, каскад и RAD.
Что касается пригодности PHP для ОО по сравнению с процедурным кодированием, то, конечно, корни языка лежат в последнем (но обратите внимание, что и Java, и ASP являются гибридными, а не настоящими языками ОО).
Лично я склонен писать процедурный код, когда мне нужно произвести что-то очень простое или его поведение должно быть тщательно определено и предсказуемо. Однако при написании сложного кода, в котором поведение во время выполнения будет сильно различаться, я считаю, что ОО намного эффективнее с точки зрения времени разработки, несмотря на то, что дизайн основан на конечном наборе вариантов использования.
Чтобы утверждать, что вы всегда должны писать процедурный код, потому что он будет работать быстрее, чем код OO:
1) не обязательно верно
2) полностью игнорирует относительные затраты времени разработчика и затраты на оборудование
хорошо бы обернуть вещи внутри класса и использовать статические функции
Учитывая, что пространства имен теперь доступны в PHP, это действительно грязный способ избежать коллизий пространства имен, а не то, что я бы рекомендовал.
С