Pierwsza Klasa

Marek Szydełko
05.09.2015

Witam w kolejnym artykule. Aby rozwikłać pewne niejasności, przedstawię tu typy plików, którymi będę sie posługiwał : .php - (strona sterująca) nigdy nie powinien zawierać zapytań SQL ani kodu HTML. .phpm - (klasy) nie powinien zawierać kodu HTML. .phphtml* - (szablony) nie powinien zawierać zapytań SQL, i powinien korzystać z podstawowej składni PHP (for, if, while).


Zaczniemy więc od sposobu deklarowania nowej klasy.
Zaczynamy od słowa class nazwa_klasy, np.

KOD
class Demo{

}


Wewnątrz klasy możemy deklarować zmienne, o trzech typach:
public - zmienne dostępne dla plików wykonywalnych .php . Mogą również z poziomu plików .php zmieniać ich wartość.
private - zmienne dostępne tylko z poziomu danej klasy.
protected - zmienne dostępne tylko z poziomu danej klasy oraz z poziomu klas, które dziedziczą daną klasę.

Metody (funkcje) deklarujemy za pomocą instrukcji
(typ) function nazwa_funkcji(argumenty)

Typami funkcji podobnie, jak zmiennych moga być public, private, protected, a także abstract czy static, ale o tym później.

Funkcje zadeklarowane już w php są to m.in. :
__construct() ; __destruct() ; __set() ; __get() ; .


Teraz napiszmy pierwszą, prostą klasę.
Posłużę się tu przykładem z poprzedniego tematu odnośnie samochodów.
Stworzę klasę Samochód, a następnie jej podklasę.

 

KOD
<?php

class Samochod {
protected PrzejechaneKm;
protected Kolor;
protected Wiek;

public function __construct($PrzejechaneKm, $Kolor, $Wiek)
{
   $this -> PrzejechaneKm = $PrzejechaneKm;
   $this -> Kolor = $Kolor;
   $this -> Wiek = $Wiek;
}

public function __get($NazwaWlasciwiosci) {
   return $this -> $NazwaWlasciwosci;    
}

public function __set($NazwaWlasciwosci, $Wartosc) {
   $this -> $NazwaWlasciwosci = $Wartosc;
}

}

?>



Teraz jej podklasę
 

KOD
<?php

require('class.samochod.phpm');

class Ciezarowka extends Samochod{
  private MaxT;


}

?>



I to wszystko. Jako, że klasa Ciezarowka dziedziczy zarówno metody (funkcje), jak i właściwości (zmienne), nie musimy powtarzać kodu. Wykorzystane może być np. tak :

KOD
<?php

require('class.ciezarowka.phpm');


$tir = new Ciezarowka(3, 'Czerwony', 2);

$tir -> __set('MaxT' , 20);

print "Ciezarowka przebyla".$tir -> __get('PrzejechaneKm')."
";

print "Ciezarowka ma kolor ".$tir -> __get('Kolor')."
";

print "Ciezarowka ma".$tir -> __get('Wiek')." rok/lat
";    

print "Ciezarowka moze uniesc".$tir -> __get('MaxT')." ton
";

?>



Dzięki wcześniej zadeklarowanym funkcjom, nie musimy powtarzać kodu, czy też obawiać się zmiany treści klasy z poziomu pliku wykonywalnego .php .


---------------------------------------------------------------------------------------

*Zakładając, że nie posługujemy się tu systemem szablonów, typu Smarty czy OPT.

Zgłoś swój pomysł na artykuł

Więcej w tym dziale Zobacz wszystkie