---

I denna artikeln går vi igenom vad OOP är.

OOP är en förkortning för ObjektOrienterad Programmering, och det är inte ett eget språk, utan snarare ett sätt att tänka på när man ska strukturera upp sin kod. Två andra sätt att tänka på är funktionell- respektive imperativ programmering. Imperativ programmering är antagligen det du är van vid (variabler, loopar och det), medan ett program i funktionell programmering enbart består av ett enda stort uttryck som exekveras. Alla språk har inte stöd för OOP, men många har det, och PHP är ett av dem.

I OOP låter man programmeraren skapa egna datatyper, vilka kallas för klasser. Men vad är meningen med att skapa en egen datatyp, undrar du säkert nu? Räcker det inte med de datatyper som redan finns (heltal, flyttal, strängar, boolean, arrayer med flera)? Jo, de räcker gott och väl för att lösa de flesta uppgifter man kan ställas inför, men klasser är ett verktyg som löser dessa uppgifterna på ett bättre och mer strukturerat sätt. Flera små uppgifter kan man utan problem, och antagligen både bättre och snabbare, lösa utan OOP, men när uppgifterna växer blir fördelarna med OOP tydligare och tydligare.

För att visa några av fördelarna i OOP ska vi först lösa ett problem utan att använda OOP, sedan med hjälp av OOP, och slutligen jämföra de för- och nackdelar som finns. Samtidigt som vi löser det med hjälp av OOP kommer du få lära dig hur syntaxen för det ser ut i PHP. Uppgiften vi ska lösa är att en användare (en annan som programmerar) ska kunna hantera ett datum. Detta är vår nya datatyp: ett datum.

Denna uppgiften är redan löst utan OOP i artikeln Exempel på problemlösning, så börja med att läsa den nu, innan du läser vidare i denna artikeln.

Det gick ju bra att lösa uppgiften på det sättet den var löst i den artikeln, kan OOP verkligen lösa det på ett bättre sätt? Svaret är nej, om vi ska lösa den i OOP kommer lösningen att vara exakt likadan, man tänker på samma sätt, men man har en annan struktur på koden. I nästa artikel kommer vi gå igenom hur man löser det med hjälp av OOP i PHP