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:
<?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:
Ieșire: script PHP
<?php
class Fruit {
public $name;
public $color;
function set_details($name, $color) {
$this->name = $name;
$this->color = $color;
}
function get_details() {
echo "Nume: " . $this->name . ". Culoare: " . $this->color .".<br>";
}
}
// Creează un obiect numit $apple din clasa Fruit
$apple = new Fruit();
$apple->set_details('Apple', 'Red');
$apple->get_details();
// Creează un obiect numit $banana din clasa Fruit
$banana = new Fruit();
$banana->set_details('Banana', 'Yellow');
$banana->get_details();
?>
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:
Ieșire: script PHP
<?php
class Fruit {
// Proprietăți
public $name;
public $color;
}
$apple = new Fruit();
var_dump($apple instanceof Fruit);
?>