OOP i PHP – Introduktion till klass och objekt

O

I de tidigare handledningarna använde vi funktioner för att skriva PHP-skript. Därför kallas det strukturell programmering. Men strukturell programmering blir mer rörig och svår att förstå och hantera när storleken på ansökan eller projektet ökar. Vi startar nu objektorienterad programmering- OOP i PHP som använder sig av klasser och objekt.

Vad är objektorienterad programmering – OOP i PHP

OOP är en förkortning av Object-Oriented Programming. Som namnet antyder innehåller den objekt som innehåller både data och egenskaper.

Det beror på kraven för att välja bort OOP i PHP eller strukturell programmering i PHP. Men i de flesta fall överträffar OOP strukturell programmering. Skälen till att OOP i PHP är mer fördelaktigt är nedan.

  • OOP är lättare att förstå och snabbare att köra.
  • Koden blir i en struktur som gör den lätt att modifiera.
  • Genom att använda OOP i PHP kan vi undvika upprepningar av kod.
  • Enligt standard OOP principer kan vi utveckla både småskaliga och storskaliga applikationer. Vi kommer att lära oss dessa standardfunktioner i nästa tutroial.

Vad är en klass i OOP?

En klass är den huvudsakliga utgångspunkten för OOP i PHP. En klass innehåller attribut, funktioner och specifikationer. Titta till exempel på följande exempel för att föreställa dig vad en klass faktiskt handlar om.

  • En klass av sällskapsdjur
  • En klass av bilar

Liksom i ovanstående klasser har vi klassat djuren i klassen Djur och bilar i klassen Bil. Den här klassen innehåller attribut och funktioner, som vi kommer att senare i artikeln.

Vad är objekt i OOP?

Objekt är instanser av klassen som har eller återspeglar dess egenskaper. Det kan finnas flera objekt i en klass som återspeglar samma egenskaper hos dess klass. Varje objekt kan dock ha olika värden för egenskaperna för sin klass.

I exemplet ovan av klassen sällskapsdjur och bilar kan vi ha följande objekt.

  • Objekt av sällskapsdjur som innehåller katt och hund.
  • Likaså objekt av klass Bilar som innehåller Honda och Toyota.

Obs: Ett objekt ärver alla egenskaper för sin klass.

Hur skapar man en klass i PHP OOP?

Klassnyckelordet används för att deklarera en klass i PHP. Namnet på klassen kommer efter detta nyckelord och det rekommenderas att börja klassens namn med en stor bokstav. Till exempel skapar vi en klass av sällskapsdjur i PHP.

<?php
class Pets {
  // code
}
?>

Nu har vi en klass Husdjur, som inte innehåller någon funktion, attribut eller kod. I nästa exempel kommer vi att fylla PHP-klassen med några funktioner. Låt oss säga att vi har namnet på husdjuret och dess färg.

<?php
class Pets {

  // Properties

  public $nick_name;
  public $color;

  // functions
  function set_nick_name($name) {
    $this->nick_name = $name;
  }

  function get_nick_name() {
    return $this->nick_name;
  }
}
?>

Obs: Variabler i klassen är också kända som attribut och fungerar som metoder.

Hur skapar man ett objekt av klass i PHP?

För att skapa ett nytt objekt i PHP, använd ny nyckelord och skriv namnet på objektet efter nyckelordet. Titta på följande exempel, där vi skapar två objekt av klassen Husdjur.

<?php
class Pets {
  // Properties
  public $nick_name;
  public $color;

  // Methods
  function set_name($name) {
    $this->nick_name = $name;
  }
  function get_name() {
    return $this->nick_name;
  }
}

$cat = new Pets();
$dog = new Pets();

$cat->set_name('yii');
$dog->set_name('hop');

echo $cat->get_name();
echo "<br>";
echo $dog->get_name();
?>
  • I exemplet ovan inkluderar vi två metoder för att ställa in och få namnet på husdjuret.
  • Vi använder ny nyckelord för att skapa två objekt $cat och $dog.
  • Anropa metoden set_name med båda objekten.
  • Nu har båda objekten sin egen egenskap av smeknamn.

Nu, i exemplet ovan, kommer vi att lägga till ytterligare två funktioner som kommer att ställa in och få färgegenskapen för sällskapsdjuret.



<?php
class Pets {
  // Properties
  public $nick_name;
  public $color;

  // Methods
  function set_name($name) {
    $this->nick_name = $name;
  }
  function get_name() {
    return $this->nick_name;
  }
  function set_color($color) {
    $this->color = $color;
  }
  function get_color() {
    return $this->color;
  }
}

$cat = new Pets();
$dog = new Pets();

$cat->set_name('yii');
$dog->set_name('hop');

$cat->set_color('brown');
$dog->set_color('white');

echo $cat->get_name();
echo $cat->get_color();

echo $dog->get_name();
echo $dog->get_color();
?>

  • I exemplet ovan inkluderar vi ytterligare två metoder för att ställa in och få färgen på husdjuret.
  • Vi använder ny nyckelord för att skapa två neoobjekt $cat och $dog.
  • Anropa set_name och ange färgmetoder för båda objekten.
  • Nu har båda objekten sin egen egenskap av smeknamn och färg.
  • Vi kallar get-metoden med båda objekten. Det kommer att mata ut namn och färg på båda husdjuren.

Vad är $this nyckelord i PHP OOP?

$ detta nyckelord hänvisar till det aktuella objektet i PHP OOP. Nyckelordet kan antingen användas för att ställa in värdet för det aktuella objektet eller få värdet.

Det finns två metoder för att uppdatera värdet på klassattribut.

  1. Använder $this nyckelord
  2. Ställ in värdet direkt med hjälp av objekt.

Titta på följande exempel, där vi använder $this nyckelord inuti funktionen för att ställa in värdet på husdjursfärg.



<?php
class Pets {

  // Properties

  public $nick_name;
  public $color;

  // functions
  function set_nick_name($name) {
    $this->nick_name = $name;
  }

  function get_nick_name() {
    return $this->nick_name;
  }
}
?>

Se till att i exemplet ovan kommer smeknamnet att ställas in för objektet som anropar denna funktion. I nästa exempel kommer vi att ställa in smeknamnet utan att använda nyckelordet $this.

<?php
class Pets {
  public $color;
}
$cat = new Pet();
$cat->name = "brown";

echo $cat->color;
?>

PHP instnceOf-funktion

Du kan använda PHP instanceOf-funktionen för att kontrollera klassen för objektet som det tillhör.

<?php
$dog = new Pet();
var_dump($dog instanceof Pet);
?>

Du kan hänvisa till den officiella PHP 8 Classes and Objects-artikeln här.

Lägg till kommentar

Lärarnätverk

Lär dig PHP från A till Ö