Pro výukové účely na SPŠ Zlín
vytvořil RNDr.Vladimír Vaščák

PHP

  1. Definice a instance
  2. Funkce
  3. Konstruktory
  4. Dědičnost
  5. Úkol

1. Definice a instance

Příklad definice třídy:
class CStudent {
    var $prijmeni, $jmeno;
    var $rocnik = 4, $skupina, $kat_cislo;
} 
Příklad instance:
$student = new CStudent; //$student je instancí třídy CStudent
přístup k proměnným objektu $student : (ročník jsme inicializovali již při definici)
$student->jmeno = "Jára";
$student->prijmeni = "Cimrman";
$student->skupina = "H";
$student->kat_cislo = 13;

2. Funkce

Příklad:
class CStudent {
    var $prijmeni, $jmeno;
    var $rocnik = 4, $skupina, $kat_cislo;

    function Tisk () {
        echo $this->prijmeni." ".$this->jmeno." ze ".$this->rocnik." ".$this->skupina;
    }
}
Příklad volání funkce:
$student = new CStudent;
$student->jmeno = "Jára";
$student->prijmeni = "Cimrman";
$student->skupina = "H";
$student->kat_cislo = 13;
//zavoláme funkci
$student->Tisk();
Příklad funkce s parametrem:
class CStudent {
    var $prijmeni, $jmeno;
    var $rocnik, $skupina, $kat_cislo;

    function __construct($prijmeni, $jmeno, $rocnik, $skupina, $kat_cislo) {
        $this->prijmeni = $prijmeni;
        $this->jmeno = $jmeno;
        $this->rocnik = $rocnik;
        $this->skupina = $skupina;
        $this->kat_cislo = $kat_cislo;
    }

    function Tisk ($jedenradek = true) {
        if ($jedenradek == true) {
            echo $this->prijmeni." ".$this->jmeno." ze ".$this->rocnik." ".$this->skupina."<br>\r\n";;
        } else {
            echo $this->rocnik." ".$this->skupina."<br>\r\n";
            echo $this->prijmeni." ".$this->jmeno."<br>\r\n";
        }
    }
} 

3. Konstruktory

Konstruktor je metoda se jménem __construct() (dříve stejný název jako třída). Pomocí konstruktoru můžeme například ihned po vytvoření instance inicializovat hodnoty.
class CStudent {
    var $prijmeni, $jmeno;
    var $rocnik, $skupina, $kat_cislo;

    function __construct($prijmeni, $jmeno, $rocnik, $skupina, $kat_cislo) {
        $this->prijmeni = $prijmeni;
        $this->jmeno = $jmeno;
        $this->rocnik = $rocnik;
        $this->skupina = $skupina;
        $this->kat_cislo = $kat_cislo;
    }

    function Tisk ($jedenradek = true) {
        if ($jedenradek == true) {
            echo $this->prijmeni." ".$this->jmeno." ze ".$this->rocnik." ".$this->skupina."<br>\r\n";;
        } else {
            echo $this->rocnik." ".$this->skupina."<br>\r\n";
            echo $this->prijmeni." ".$this->jmeno."<br>\r\n";
        }
    }
}
Ukázka: Klik
$student1 = new CStudent("Cimrman", "Jára", 4, "H", 13);
$student1->Tisk(true);

$student2 = new CStudent("Carda", "Retarda", 4, "G", 13);
$student2->Tisk(false);

4. Dědičnost

Můžeme vytvořit novou třídu, která zdědí proměnné a funkce výchozí třídy.
Příklad:
class CMaturant extends CStudent {
    var $zmaturuje;
    
    function maturita() {
        if (rand (1, 10) < 6) {
            echo $this->prijmeni." ".$this->jmeno." zmaturuje ";
            $this->zmaturuje = true;
        } else {
            echo $this->prijmeni." ".$this->jmeno." nezmaturuje ";
            $this->zmaturuje = false;
        }
    }
}
Ukázka: Klik
$student1 = new CMaturant("Cimrman", "Jára", 4, "H", 13);
$student1->maturita();
$student2 = new CMaturant("Carda", "Retarda", 4, "G", 13);
$student2->maturita();

5. Úkol

© 2007 Pro výuku na SPŠ Zlín připravil RNDr. Vladimír Vaščák