Treci la conținutul principal

Clase și obiecte în POO PHP

O clasă funcționează ca un șablon: descrie structura (proprietățile) și comportamentul (metodele) pe care le vor avea obiectele ei. Fiecare obiect este apoi o instanță individuală a acelei clase.


Definirea unei clase

Ca să definești o clasă, scrie cuvântul cheie class, apoi numele clasei, apoi o pereche de acolade ({}). Tot ce aparține clasei, atât proprietățile, cât și metodele, se scrie între aceste acolade.

Imaginează-ți o clasă numită Fruit. Ar putea păstra ca proprietăți un name și un color și ar putea oferi două metode: una care setează aceste detalii și una care le obține.

Notă: O proprietate este pur și simplu o variabilă care se află într-o clasă, iar o metodă este o funcție care se află într-o clasă.

Notă: Într-o metodă, $this reprezintă obiectul curent și îți dă acces la propriile lui proprietăți și metode.

Definiția clasei

Clasa Fruit, cu proprietățile și metodele ei:

index.php
<?php
class Fruit {
  // Properties
  public $name;
  public $color;

  // Method to set the properties
  function set_details($name, $color) {
    $this->name = $name;
    $this->color = $color;
  }

  // Method to display the properties
  function get_details() {
    echo "Name: " . $this->name . ". Color: " . $this->color .".<br>";
  }
}
?>

Definirea obiectelor

O clasă nu face nimic util până nu creezi obiecte din ea. O singură clasă poate produce oricâte obiecte (instanțe) ai nevoie. Toate primesc proprietățile și metodele definite de clasă, dar fiecare își păstrează propriile valori ale proprietăților.

Creezi un obiect cu ajutorul cuvântului cheie new.

Crearea obiectelor

Aici, clasa Fruit produce două obiecte separate, $apple și $banana:

Prompt
Scrie un script PHP care definește o clasă Fruit cu proprietățile publice $name și $color, metodele set_details() și get_details(), apoi creează două obiecte ($apple și $banana) și afișează detaliile lor.
Ieșire: script PHP

PHP - instanceof

Vrei să afli dacă un obiect aparține unei anumite clase? Cuvântul cheie instanceof răspunde la această întrebare:

Exemplu cu instanceof

Aici, instanceof verifică dacă $apple aparține clasei Fruit, iar var_dump() afișează răspunsul:

Prompt
Scrie un script PHP care creează un obiect Fruit și folosește var_dump() împreună cu instanceof pentru a verifica dacă acesta aparține clasei Fruit.
Ieșire: script PHP