Stronę tą wyświetlono już: 2668 razy
W PHP obiekty klas są typami referencyjnymi, to znaczy takimi, które przechowują wskaźnik na miejsce w pamięci, gdzie dane klasy są przechowywane. Utwórzmy sobie małą deklarację klasy, której jedynym celem będzie ułatwienie tworzenia prostych tabelek html. Oto deklaracja takiej klasy:
<?php
class html_table{
// prywatne pola klasy:
private $header; // nagłówek kolumn tabelki
private $records; // rekordy tabelki
// konstruktor klasy wywoływany przy tworzeniu obiektu klasy:
public function __construct($header_array){
$this->header = $header_array; // przypisanie do pola klasy o nazwie header jedynego argumentu kontruktora
$this->racords = array(); // to będą rekordy tableki
}
// publiczne metody klasy htm_table
// metoda dodająca nowy rekord do tabeli
public function AddRecord($record_array){
if(count($record_array) == count($this->header)){ // jeżeli liczba rekordów tabeli zgadza się z liczbą nagłówków to
$this->records[] = $record_array; // dodawaj rekord
return true; // i zwracaj prawdę
}
return false; // w przeciwnym przypadku zwracaj fałsz
}
// metoda tworząca kod html tabeli
public function GetTable(){
echo("<table border='1' cellspacing='0' align='center'><tr style='background:#000000;color:#ffffff;'>");
foreach($this->header as $title){
echo("<td>$title</td>"); // dodawanie podpisów kolumn
}
echo("</tr>");
foreach($this->records as $record){
echo("<tr>");
foreach($record as $ceil){
echo("<td>$ceil</td>"); // dodawanie poszczególnych komórek rekordów
}
echo("</tr>");
}
echo("</table>");
}
// destruktor klasy wywoływany przy jej niszczeniu
public function __destruct(){
}
}
?>
Tworzenie obiektu klasy html_table odbywa się za pomocą słowa kluczowego new. Oto przykład:
<?php
$myTable = new html_table(array("Nr.", "Jezioro", "Powierzchnia [ha]"));
$myTable->AddRecord(array("1", "Śniardwy", "11487,5"));
$myTable->AddRecord(array("2", "Mamry", "9851,0"));
$myTable->AddRecord(array("3", "Łebsko", "7020,0"));
$myTable->AddRecord(array("4", "Dąbie", "5408,0"));
$myTable->AddRecord(array("5", "Miedwie", "3491,0"));
$myTable->GetTable();
?>
Rezultat działania powyższego kodu:
Nr. | Jezioro | Powierzchnia [ha] |
1 | Śniardwy | 11487,5 |
2 | Mamry | 9851,0 |
3 | Łebsko | 7020,0 |
4 | Dąbie | 5408,0 |
5 | Miedwie | 3491,0 |
W kodzie deklaracji klasy można wyróżnić trzy typy modyfikatorów dostępu:
- public - metody i pola klasy są dostępne z zewnątrz;
- private - metody i pola klasy są dostępne jedynie w wewnętrznych metodach klasy;
- protected - metody i pola klasy są dostępne jedynie w wewnętrznych metodach klasy i klasie dziedziczącej.