OOP v PHP – Uvod v razred in objekte

O

V prejšnjih vadnicah smo uporabljali funkcije za pisanje PHP skriptov. Zato se imenuje strukturno programiranje. Vendar pa strukturno programiranje postaja vse bolj neurejeno in težko razumljivo ter obvladovanje, ko se velikost aplikacije ali projekta povečuje. Zdaj začenjamo objektno usmerjeno programiranje - OOP v PHP ki uporablja razrede in predmete.

Kaj je objektno usmerjeno programiranje – OOP v PHP

OOP je okrajšava za objektno usmerjeno programiranje. Kot pove že ime, vsebuje predmete, ki vsebujejo tako podatke kot lastnosti.

Odvisno je od zahtev za izbiro OOP v PHP ali strukturnega programiranja v PHP. Vendar pa je v večini primerov OOP boljši od strukturnega programiranja. Razlogi, zaradi katerih je OOP v PHP bolj koristen, so spodaj.

  • OOP je lažje razumeti in hitreje izvesti.
  • Koda postane v strukturi, ki omogoča enostavno spreminjanje.
  • Z uporabo OOP v PHP se lahko izognemo ponavljanju kode.
  • Po standardnih načelih OOP lahko razvijamo tako majhne kot velike aplikacije. Te standardne funkcije se bomo naučili v naslednjih vadnicah.

Kaj je razred v OOP?

Razred je glavno izhodišče OOP v PHP. Razred vsebuje atribute, funkcije in specifikacije. Oglejte si na primer naslednje primere, da si predstavljate, kaj pravzaprav pomeni razred.

  • Razred hišnih živali
  • Razred avtomobilov

Tako kot v zgornjih razredih smo živali uvrstili v razred Živali in avtomobile v razred Avto. Ta razred vsebuje atribute in funkcije, ki jih bomo kasneje v članku.

Kaj so objekti v OOP?

Objekti so primerki razreda, ki ima ali odraža njegove lastnosti. V razredu je lahko več predmetov, ki odražajo iste lastnosti njegovega razreda. Vendar ima lahko vsak predmet različne vrednosti za lastnosti svojega razreda.

V zgornjem primeru razreda hišnih živali in avtomobilov imamo lahko naslednje objekte.

  • Predmet hišne živali razreda, ki vsebuje mačko in psa.
  • Podobno predmet razreda Avtomobili, ki vsebujejo Hondo in Toyoto.

Opomba: Objekt podeduje vse lastnosti svojega razreda.

Kako ustvariti razred v PHP OOP?

Ključna beseda class se uporablja za deklariranje razreda v PHP. Ime razreda je za to ključno besedo in priporočamo, da se ime razreda začne z veliko začetnico. Na primer, v PHP ustvarimo razred hišnih živali.

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

Zdaj imamo razred Pets, ki ne vsebuje nobene funkcije, atributov ali kode. V naslednjem primeru bomo razred PHP napolnili z nekaterimi funkcijami. Recimo, imamo ime hišnega ljubljenčka in njegovo barvo.

<?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;
  }
}
?>

Opomba: spremenljivke v razredu so znane tudi kot atributi in delujejo kot metode.

Kako ustvariti predmet razreda v PHP?

Če želite ustvariti nov predmet v PHP, uporabite novo ključno besedo in za ključno besedo napišite ime predmeta. Poglejte si naslednji primer, v katerem ustvarimo dva predmeta razreda Pets.

<?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();
?>
  • V zgornjem primeru vključujemo dva načina za nastavitev in pridobitev imena hišnega ljubljenčka.
  • Mi uporabljamo novo ključna beseda za ustvarjanje dveh predmetov $cat in $dog.
  • Z obema objektoma pokličite metodo set_name.
  • Zdaj imata oba predmeta lastno lastnost vzdevka.

Zdaj bomo v zgornjem primeru dodali še dve funkciji, ki bosta nastavili in dobili barvno lastnost hišne živali.



<?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();
?>

  • V zgornjem primeru vključujemo dva dodatna načina za nastavitev in pridobivanje barve hišnega ljubljenčka.
  • Mi uporabljamo novo ključna beseda za ustvarjanje dveh neobjektov $cat in $dog.
  • Pokličite set_name in nastavite barvne metode za oba predmeta.
  • Zdaj imata oba predmeta lastno lastnost vzdevka in barve.
  • Metodo get pokličemo z uporabo obeh objektov. Izpisal bo ime in barvo obeh hišnih ljubljenčkov.

Kaj je $this ključna beseda v PHP OOP?

$ to ključna beseda se nanaša na trenutni objekt v PHP OOP. Ključno besedo lahko uporabite za nastavitev vrednosti za trenutni objekt ali pridobite vrednost.

Obstajata dva načina za posodobitev vrednosti atributi razreda.

  1. Uporaba ključne besede $this
  2. Nastavite vrednost neposredno s pomočjo predmeta.

Poglejte si naslednji primer, ki ga uporabljamo $to ključno besedo znotraj funkcije za nastavitev vrednosti barve hišnega ljubljenčka.



<?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;
  }
}
?>

Prepričajte se, da bo v zgornjem primeru vzdevek nastavljen za objekt, ki kliče to funkcijo. V naslednjem primeru bomo nastavili vzdevek brez uporabe ključne besede $this.

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

echo $cat->color;
?>

PHP instnceOf funkcija

S funkcijo PHP instanceOf lahko preverite razred predmeta, ki mu pripada.

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

Lahko se obrnete na uradni članek o razredih in predmetih PHP 8 tukaj.

Dodaj komentar

Mreža mentorjev

Naučite se PHP od A do Ž