Klasa jest teoretycznym projektem (wzorcem), fizyczny egzemplarz klasy nazywamy obiektem.
Obiekty danej klasy tworzymy operatorem new, zwraca on referencję do utworzonego obiektu.
Przykładowy kod:
<?
class Slon
{
public $imie;
public $dlugoscTraby;
public $nieTegoChce = ':(';
public function machnijTraba() {
echo 'macham traba';
}
};
$dumbo = new Slon; //1
$dumbo->imie = 'dumbo'; //2
$dumbo->dlugoscTraby = 50;
$dumbo->machnijTraba(); //3
echo $dumbo->dlugoscTraby; //4
?>
Należy pamiętać że nazwy właściwości do której się odwołujemy podajemy bez znaku dolara $
Wywołanie kodu :
<?php
$imie = 'nieTegoChce';
$dumbo = new Slon;
$dumbo->$imie = 'dumbo';
?>
Nie uzyskamy dostępu do właściwości $imie,obiektu pokazywanego przez $dumbo. PHP przeszuka bieżący zakres w poszukiwaniu zmiennej $imie i pobierze jej wartość, a następtnie użyje jej jako nazwę właściwości do pobrania (zmienna zmiennej).Tak więc w podanym przykładzie uzyskamy dotęp do właściwości - $nieTegoChce.
PHP zezwala na dynamiczne deklarowanie właściwości obiektów
Przykład :
<?php $dumbo = new Slon;
$dumbo->kolor = 'pomaranczowy';
?>
Klasa Slon nie posiada właściwości kolor, tak więc PHP dynamicznie utworzy tą właściwość i doda ją do obiektu wskazywanego przez zmienną $dumbo. PHP utworzy ją jedynie dla tego obiektu, tak więc wszystkie inne obiekty klasy Slon, nie będą posiadać tej właściowści.
Wewnątrz metod obiektu posiadasz pełny dostęp do jego właściwośći, jednak dostęp wymaga wywołania specjalnej zmiennej, która inforumje metodę że działamy na elemencie klasy. Zmienna ta nosi nazwę $this i zawsze wskazuje na bieżąco wykorzystywany obiekt.
Zmienną $this musimy także użyć gdy chcemy wywołać metodę wewnątrz klasy.
<?
class Slon
{
private $imie;
public function ustawImie($dane){
//$imie = $dane; //3
$this->imie = $dane; //4
}
public function podajImie(){
return $this->imie;
}
public function przedstawSie(){
return 'Mam na imie'.$this->podajImie();
}
};
$dumbo = new Slon;
//$dumbo->imie = 'dumbo'; //1
$dumbo->ustawImie('dumbo'); //2
//echo $dumbo->imie; //5
echo $dumbo->przedstawSie(); //6
?>
<?php class db_mysql { private connect = NULL; private limit = 10; public connect() { //Treść funkcji } public disconnect() { //Treść funkcji } public selectAll() { //Treść funkcji }};
Darmowy hosting zapewnia PRV.PL