Kursy i Poradniki IT - Adrian Kowalski
Kurs Programowania PHP dla Początkujących
O lekcji

Programowanie obiektowe (OOP) pozwala na organizowanie kodu w strukturę obiektów. OOP w PHP wprowadza zasady takie jak dziedziczenie, polimorfizm, enkapsulacja, a także zagadnienia takie jak konstruktory, metody, właściwości i inne mechanizmy, które umożliwiają tworzenie bardziej modularnych, łatwych w utrzymaniu i rozbudowywanych aplikacji.

Podstawowe pojęcia OOP w PHP

Klasy i Obiekty:

  • Klasa to szablon lub blueprint, który definiuje właściwości i zachowania (metody) obiektów.
  • Obiekt to instancja klasy, zawierająca konkretne dane i mogąca wykonać metody zdefiniowane w klasie.

Przykład: Definicja klasy i obiektu

<?php
class Samochod {
    public $marka;
    public $kolor;

    // Konstruktor
    public function __construct($marka, $kolor) {
        $this->marka = $marka;
        $this->kolor = $kolor;
    }

    // Metoda
    public function jedz() {
        echo "Samochód $this->marka jedzie.<br>";
    }
}

// Tworzymy obiekt
$mojSamochod = new Samochod("Toyota", "Czerwony");
echo $mojSamochod->marka . "<br>";
$mojSamochod->jedz();
?>

Metody w PHP

Metody to funkcje zdefiniowane wewnątrz klasy, które operują na danych obiektu i wykonują operacje związane z klasą. Możemy zdefiniować metody statyczne (wywoływane bez tworzenia obiektu) lub niestatyczne (wywoływane na instancji obiektu).

Przykład: Metody w klasie

<?php
class Kalkulator {
    public function dodaj($a, $b) {
        return $a + $b;
    }

    public static function pomnoz($a, $b) {
        return $a * $b;
    }
}

$kalkulator = new Kalkulator();
echo $kalkulator->dodaj(2, 3);  // wywołanie metody niestatycznej
echo Kalkulator::pomnoz(2, 3);   // wywołanie metody statycznej
?>

Konstruktor w PHP

Konstruktor (__construct) to specjalna metoda, która jest wywoływana podczas tworzenia obiektu. Pozwala na inicjalizację wartości właściwości obiektu.

Przykład: Konstruktor w PHP

<?php
class Osoba {
    public $imie;
    public $wiek;

    // Konstruktor
    public function __construct($imie, $wiek) {
        $this->imie = $imie;
        $this->wiek = $wiek;
    }

    public function przedstaw() {
        echo "Cześć, mam na imię $this->imie i mam $this->wiek lat.<br>";
    }
}

$osoba = new Osoba("Jan", 30);
$osoba->przedstaw();
?>

Dziedziczenie w PHP

Dziedziczenie pozwala jednej klasie przejąć właściwości i metody innej klasy, co umożliwia tworzenie hierarchii klas. Klasa, która dziedziczy, nazywa się klasą potomną, a klasa, z której dziedziczy, to klasa bazowa.

Przykład: Dziedziczenie

<?php
class Zwierze {
    public $gatunek;

    public function __construct($gatunek) {
        $this->gatunek = $gatunek;
    }

    public function dajGlos() {
        echo "Zwierzę wydaje dźwięk.<br>";
    }
}

class Pies extends Zwierze {
    public function dajGlos() {
        echo "Hau hau!<br>";
    }
}

$zwierze = new Pies("Pies");
$zwierze->dajGlos();  // Pies wyda dźwięk "Hau hau!"
?>