PHP 8.2 - sprawdź co nowego!

Programowanie obiektowe > Lekcja 1

Klasa i obiekt

Można by rzec, że „fundamentem” programowania obiektowego są klasy i obiekty, dlatego też od nich zaczniemy.

Klasa jest szablonem na stworzenie obiektu. Definiuje ona właściwości oraz metody (funkcje). Obiekt jest więc instancją określonej klasy. Możemy stworzyć dowolną liczbę obiektów każdej klasy i każdy z nich może zachowywać inne wartości poszczególnych właściwości.

Brzmi skomplikowanie? W praktyce nie jest tak źle. Wyobraź sobie, że naszą klasą jest samochód. Zdefiniowane są w niej określone właściwości, na przykład: numer rejestracyjny, VIN, kolor i dla każdego pojazdu są one inne. Możemy też mieć różnorodne metody, jak włącz/wyłącz alarm, uruchom silnik, jedź i tak dalej… Programowanie obiektowe z pewnością wymaga zmiany podejścia i postrzegania wszystkiego.

Dobrze, przejdźmy wreszcie do kodu. Do zadeklarowania klasy używamy słówka class, a następnie podajemy jej nazwę. Przyjęło się, że nazwę klasy zaczynamy od wielkiej litery i kolejne wyrazy łączymy, również zaczynając je wielką literą (jest to zapis PascalCase). Tak określa również standard PSR-12.

Kontynuując przykład z samochodem, zadeklarujmy nową klasę Car i stwórzmy jej obiekt:

<?php

class Car
{

}
$car = new Car();

new służy właśnie do utworzenia nowego obiektu (nowej instancji) danej klasy. Warto dodać, że nawiasy na końcu nie są konieczne, jeśli nie przekazujemy nic do konstruktora klasy (o tym później), ale przeważnie i tak są zapisywane dla spójności.

Co prawda aktualnie nie będzie żadnego widocznego efektu tego kodu, ale właśnie stworzyłeś swój pierwszy obiekt!

Sprawdzenie klasy obiektu

Czasem będziesz potrzebował sprawdzić, przykładowo czy w danej zmiennej jest obecnie obiekt danej klasy. Możemy łatwo zrobić to przy użyciu instrukcji warunkowej i instanceof. Rozszerzając powyższy przykład, wyglądałoby to tak:

<?php

if ($car instanceof Car) {

}

Możesz też otrzymać nazwę klasy przy użyciu funkcji get_class() (get_class($car)), a dla php >=8.0 odwołania przez ::class ($car::class).

Powrót Następna lekcja

Udostępnij

  • Facebook
  • Twitter

Komentarze