Klasa jest 'przepisem' w którym jest zapisane jak utworzyć dany obiekt. Klasa jest pojęciem abstrakcyjnym, oznacza w programowaniu własny typ danych. Klasa składa się z atrybutów (właściwości) oraz funkcji (metod).
Właściwości i metody mogą mieć modyfikatory dostępu, które kontrolują, gdzie można uzyskać do nich dostęp.
Istnieją trzy modyfikatory dostępu:
public- do właściwości lub metody można uzyskać dostęp z dowolnego miejsca. To jest domyślne
protected - do właściwości lub metody można uzyskać dostęp w ramach klasy i klas pochodzących z tej klasy
private - do właściwości lub metody można uzyskać TYLKO w ramach klasy
Bezpiecznym rozwiazaniem jest by właściwości miały modyfikator dostępu chroniący je przed nieautoryzowaną zmianą wartości - czyli np. wartość private. Dla metod zaś ustawiamy modyfikator na wartość public. Definiowanie wartości atrybutów obiektu odbywa się poprzez metodę ustawiająca wartość właściwości.
<?php
//Utworzenie klasy zwierzę
class zwierze{
private $gatunek, $imie, $wiek; //właściwości
//metoda ustawiająca wartość właściwości
public function wpiszGatunek($arg1){
//Słowo kluczowe '$this' odnosi się do bieżącego obiektu
//i jest dostępne tylko wewnątrz metod.
$this -> gatunek = $arg1;
}
//metoda odczytujaca wartość właściwości
public function pobierzGatunek(){
return $this -> gatunek;
}
//metoda charakteryzująca zachowanie obiektu
public function dajglos(){
if($this -> gatunek == "kot"){
echo "Miau!!!";
}
else if($this -> gatunek == "koza"){
echo "meeeee!";
}
else if($this -> gatunek == "krowa"){
echo "muuu!";
}
}
}
?>
Na podstawie klasy, która jest 'przepisem' jak utworzyć obiekt, mogą być tworzone konkretne obiekty. Dany obiekt jest przedstawicielem, czyli reprezentantem danej klasy. Możemy stworzyć wiele obiektów z klasy. Każdy obiekt ma wszystkie właściwości i metody zdefiniowane w klasie, ale będą miały różne wartości właściwości. Obiekty klasy tworzone są za pomocą słowa kluczowego 'new'.
<?php
//Utworzenie obiektu kot
$kot = new zwierze();
$kot -> gatunek = "kot";
echo $kot -> gatunek."<br>";
echo $kot -> dajglos()."<br>";
//Utworzenie obiektu koza
$koza = new zwierze();
$koza -> gatunek = "koza";
echo $koza -> gatunek."<br>";
echo $koza -> dajglos()."<br>";
//Utworzenie obiektu krowa
$krowa = new zwierze();
$krowa -> gatunek = "krowa";
echo $krowa -> gatunek."<br>";
echo $krowa -> dajglos()."<br>";
?>