Programowanie obiektowe jest mo┐liwe r≤wnie┐ w PHP (mimo, i┐ jest to jΩzyk interpretowany). Nie jestem przekonany, czy bΩdziesz tego u┐ywa│, jednak je╢li jeste╢ przyzwyczajony, to PHP Ci na to pozwala.
Og≤lna sk│adania deklaracji klas jest nastΩpuj▒ca:
class Nazwa_klasy { [var deklaracja zmiennej] [deklaracja funkcji] }
Jak wiΩc widzimy tutaj deklaracja zmiennych jest obowi▒zkowa (i wynika istoty obiektu... trzeba wiedzieµ, z czego dok│adnie siΩ on sk│ada). Nazwy zmiennych (w│a╢ciwo╢ci) s▒ dowolne, natomiast nazwy metod nie do ko±ca. Kiedy nazwa metody jest taka sama, jak nazwa klasy, metoda ta staje siΩ automatycznie konstruktorem danego obiektu (i jest wykonywana zaraz, po jego utworzeniu). PHP nie posiada destruktor≤w (sam troszczy siΩ o "posprz▒tanie").
Maj▒c zdefiniowan▒ klasΩ, do tworzenia obiekt≤w u┐ywamy polecenia new. DostΩp do poszczeg≤lnych element≤w obiektu mamy dziΩki operatorowi ->. Wszystkie klasy posiadaj▒ wewnΩtrzn▒ zmienn▒ this, kt≤ra wskazuje na dany obiekt. Odwo│uj▒c siΩ do w│a╢ciwo╢ci obiektu, ich nazwy nie poprzedamy ju┐ znakiem dolara.
Oto przyk│ad, kt≤ry demonstruje u┐ywanie obiekt≤w w naszych skryptach:
<html>
<head>
<title>Obiekty</title>
</head>
<body>
<?
class samochod
{
// wlasciwosci
var $predkosc;
var $kolor;
var $radio;
// metody
// konstruktor
function samochod()
{
$this->predkosc=0;
$this->kolor="CZERWONY";
$this->radio=FALSE;
}
// inne metody
function Wlacz_radio()
{
$this->radio=TRUE;
}
function Wylacz_radio()
{
$this->radio=FALSE;
}
}
// tworzymy obiekt
$Syrenka=new samochod;
echo "Kolor naszego samochodu: ".$Syrenka->kolor."<br>";
echo "Stan radia: ";
if ($Syrenka->radio) echo "Wlaczone<br>"; else echo "Wylaczone<br>";
$Syrenka->Wlacz_radio();
echo "Stan radia: ";
if ($Syrenka->radio) echo "Wlaczone<br>"; else echo "Wylaczone<br>";
?>
</body>
</html>