Könnte mir freundlicherweise jemand ein kurzes, einfaches Beispiel nennen, wo man unbedingt eine Klasse braucht und z.B. eine Funktion nicht ausreicht?
Du kannst mit beiden Programmierarten so ziemlich alles erledigen. Der wesentliche Unterschied ist, dass objektorientierte Programmierung vieles (nicht alles) klarer und aufgeräumter strukturiert.
Ganz banales Beispiel: Um eine Variable als Text darzustellen, kannst du
… einzelne Funktionen à la feld_als_text(), nummer_als_text(), datum_als_text() schreiben (aber kein text_als_text(), denn das wäre ja überflüssig).
… eine Klasse Variable mit der Methode text() erzeugen und davon für die einzelnen Datentypen Unterklassen (Feld, Nummer, Datum, Text) ableiten, die ihrerseits die Methode text() überschreiben.
In ersterem Fall musst du bei jeder Variablen selbst die richtige Funktion auswählen. Du musst in die Anleitung schauen, ob es eine gibt und wie sie heißt (was insbesondere bei PHP lustig ist, weil der Name mal dem Schema feld_als_text() folgt, anderswo aber nummeralstext() oder VerwandleDatumInText()).
Brauchst du obendrein in einem Projekt eine spezielle Umwandlung einer Nummer in einen Text, kannst du die Funktion nicht einfach nummer_als_text() benennen, denn dieser Name ist ja bereits vergeben.
Im zweiten Fall kannst du einfach variable.text() aufrufen, egal, welchen Datentyp du gerade vor dir hast (denn sie sind ja alle Unterklassen von Variable), und der Funktionsname text() wäre auch noch frei.
Das ist so natürlich alles etwas an den Haaren herbeigezogen, trifft aber letztlich den Kern der Sache.