NOTE: i will refer to functions within a class as
member methods or simply
methods and the usual functions will be referred to as
functions to avoid any confusion.
inheritance in OOP probably saves me hundreds of hours.
i have base classes that have extends which are what make my code so much more easier to read.
for example, my database class has the basic methods, like a generic querying method and the other usual db related stuff, i extend that class to make the queries specific depending on my project.
so i write the base class once, modify it maybe every few months if there's a bug in it and i only have to write the code specific to each new project. so thats a LOT of time saved. my god i would NEVER go back to NOT using OOP.
but the problem is, PHP is not truly OOP. it lacks a few OOP features too. OOP is also slower in PHP but it makes code so much cleaner and upgrades/patches/updates VERY easy.
since the HTTP protocol is stateless, for each new page request, the data is lost like Travis said, but if you wish to, you can transmit this data accross pages via sessions (also see:
Object Serialization) but for my sort of work i hardly need to pass object data accross pages and i mostly work in creating CMS's and other user management systems.
so why should you use classes when you can just use functions? they seem to be the same thing, only classes seem to be an exaggerated version right?
well, within classes, you have a LOT more control over variable scope. you can specify which variables should be global or local
within that class whereas if you wanted a variable to be global accross functions, that global variable would be global accross the entire script. so you have a LOT more control over variable scope within OOP which makes for safer and very robust and powerful code.
basically, you can create your very own language with OOP in a sense.
but like every programming paradigm, bad coding practice is possible within OOP too. a lot of people attempt to manipulate object properties (the variables within a class) directly whereas it is better to use 'getters' and 'setters'...of course that's just one tiny example, there's a million other things but then that's why god gave us google
if you want, i can send my class files over to you and maybe talk you through them on IM or something so that you can see how easy it makes my life, Travis
:edit:
i should also mention that there's a time for everything...OOP is not always the best thing. for tiny scripts like, tiny form processing mail scripts, etc., using OOP is overkill. it's wise to know when to use OOP and when not to