One of the most interesting feature I like about classes are encapsulation. You can encapsulate various chains of function into one major function and call them directly. Encapsulation creates an environment where you can protect member objects and properties from being modified outside the class.
Another major part of Classes, is groups. To be able to group all the functions and attributes related to a particular object in one and the capability of making different instances of that classes as objects, is simply magical. Say you have a bunch of functions that refer to each other and pass around pretty much the same arguments. That's a good sign that those functions belong in a class, and those arguments should be members of the class.
Since you are using PHP, imagine you have created a class which creates a panel. Now you can use this class and create different but similar layouts, like news panel, advertisement panel, product display panel by creating different objects of it, and supplying the content.
You might say this is also possible using functions, but functions cannot provide the scalability and flexibility the class provides.
Inheritance
This is one of the major feature of OOP, you can create parent and child classes to an infinite level. For example, you have created a class car
. This class have attributes like wheels, gears, steering have methods like drive(), stop() but you can't accompany every cars in this world, so now you will creates its child class. In this case, the child classes may be 2WD and 4WD, and again these child classes may also have other child classes with new members and methods. But you can access the members and functions all the way up to its parents, and grand parents.
Polymorphism
This denotes being able to override a function in parent classes. i.e the driving system of a simple car is different that the driving system of 4WD car, so you need to override the previous parent function and replace it with a new function.
Another is Overloading, its the ability to be able to use a function over different parameter cases. For example, for a simple car to drive, it needs engine starts, the gear and acceleration but for modern cars like ferrari, you only needs to start the engine and press the accelerator, you dont need gear, so for these two cases in order to use the method drive(), you supply different no of parameters. And classes make it possible.(But this feature is not available in PHP :( )