PHP-osztályok és -objektumok (1.)

PHP-osztályok és -objektumok (1.)

Ma rátérünk következő nagy leckecsoportunkra, megkezdjük a PHP-osztályokkal és -objektumokkal való ismerkedést. Ha figyelmesen követed leckéinket, megtanulhatod, hogyan kell objektumorientált stílusban kódot írni a PHP-ben.

Mi az objektumorientált programozás?

Az objektumorientált programozás (OOP) egy programozási modell, mely az osztályok és az objektumok koncepcióján alapul. A procedurális programozással ellentétben, ahol a hangsúly az eljárásokon és a funkciókon van, melyek operációkat hajtanak végre az adatokon, az objektumorientált programozás az olyan objektumok létrehozására fókuszál, amelyek együttesen tartalmazzák az adatokat és a funkciókat.

Az objektumorientált programozásnak számos előnye van a hagyományos vagy a procedurális programozással szemben. A legfontosabb előnyök a következők:

  • Tiszta és egyértelmű moduláris struktúrát ad a programoknak.
  • Segít betartani a „ne ismételd magad” elvet, és ezáltal megkönnyíti a kód karbantartását, módosítását és a debuggolást is.
  • Lehetővé teszi, hogy sokkal összetettebb viselkedést hozzunk létre kevesebb kóddal, rövidebb fejlesztési idővel és az újrahasznosíthatóság magas fokával.

Az osztályok és az objektumok fogalma

Az osztályok és az objektumok az objektumorientált programozás két fő aspektusa. Az osztály a változók és a funkciók önálló, független kollekciója, melyek együttműködnek annak érdekében, hogy elvégezzenek egy vagy több specifikus feladatot. Az objektumok az osztályok individuális példányai.

Az osztály úgy működik, mint egy sablon vagy egy vázlat, melyből számos individuális objektum hozható létre. Ezek megtartják az osztály generikus tulajdonságait és viselkedését, viszont minden objektumnak más-más értéke lehet a tulajdonságokra.

Az osztályt a class kulcsszó segítségével tudjuk meghatározni, melyet az osztály neve és egy pár kapcsos zárójel ({}) követ, ahogy azt a következő példánkban is megfigyelheted majd.

Hozzunk létre egy PHP-fájlt, melynek a neve Rectangle.php lesz, majd szúrjuk be a fájlba a következő kódot, hogy elválasszuk az osztály kódját a program többi részétől. Ezután az osztályt bárhol használhatjuk, azzal, hogy beillesztjük a rectangle.php fájlt.

PHP-kód:

<?php

class Rectangle

{

    // Tulajdonságok meghatározása

    public $length = 0;

    public $width = 0;

   

    // A kerület meghatározásának módszere

    public function getPerimeter() {

        return (2 * ($this->length + $this->width));

    }

   

    // A terület meghatározásának módszere

    public function getArea() {

        return ($this->length * $this->width);

    }

}

?>

A public kulcsszó a tulajdonságok és a módszerek előtt arra utal, hogy a tulajdonság vagy a módszer bárhonnan elérhető. Erről bővebben is lesz még szó leckecsoportunkban.

Fontos megjegyezni, hogy az osztályon belül a változókat tulajdonságoknak nevezzük, míg a funkciók megnevezése a módszer. Az osztályok megnevezése során a PascalCase módszert alkalmazzuk, azaz minden szó nagybetűvel kezdődik (pl. MyClass).

Az osztály meghatározása után a new kulcsszó segítségével objektumokat hozhatunk létre az osztályból. Az osztály módszerei és tulajdonságai közvetlenül elérhetőek az objektum által.

Hozzunk létre egy új PHP-fájlt, melynek a test.php nevet adjuk, majd szúrjuk be a fájlba a következő PHP-kódot:

<?php

// Az osztály definíciója

require 'rectangle.php';

 

// Új objektum létrehozása a Rectangle osztályból

$obj = new Rectangle();

 

// Az objektum tulajdonságai értékének lekérése

echo $obj->length; // Megjelenítés: 0

echo $obj->width; // Megjelenítés: 0

 

// Az objektum tulajdonságai értékének beállítása

$obj->length = 30;

$obj->width = 20;

 

// Az objektum tulajdonságai értékeinek ismételt olvasása, hogy bemutassuk a változásokat

echo $obj->length; // Megjelenítés: 30

echo $obj->width; // Megjelenítés: 20

 

 

// Az objektum módszereinek hívása

echo $obj->getPerimeter(); // Megjelenítés: 100

echo $obj->getArea(); // Megjelenítés: 600

?>

Az OOP valódi ereje azonban akkor mutatkozik meg, amikor egy osztályból több esetet használunk, ahogy a következő példa is mutatja:

PHP-kód:

<?php

// Az osztály definíciója

require 'rectangle.php';

 

// Több objektum létrehozása a Rectangle osztályból

$obj1 = new Rectangle();

$obj2 = new Rectangle();

 

// Mindkét objektum módszerének lehívása

echo $obj1->getArea(); // Megjelenítés: 0

echo $obj2->getArea(); // Megjelenítés: 0

 

// Az $obj1 tulajdonság értékeinek beállítása

$obj1->length = 30;

$obj1->width = 20;

 

// Az $obj2 tulajdonság értékeinek beállítása

$obj2->length = 35;

$obj2->width = 50;

 

// Mindkét objektum módszerének ismételt lehívása

echo $obj1->getArea(); // Megjelenítés: 600

echo $obj2->getArea(); // Megjelenítés: 1750

?>

Ahogy a példa is mutatja, a getArea() módszer a különböző objektumokon alkalmazva különböző adatcsoportokkal dolgozott. Minden objektum független, a saját tulajdonságaival és módszereivel, ezért külön is manipulálható.

Jó gyakorlást!

 



Nyereményjáték

Rovatunk elsődleges célja, hogy közelebbről is bemutassa a legismertebb webtechnológiákat. Azok között az olvasók között, akik minden héten követik rovatunkat, azaz velünk tanulják a programozás alapjait és kitöltik a feladatsort, a sorozat végén egy laptopot sorsolunk ki.

A játék heti kérdése:

Mik a PHP-objektumok?
1. Változók és funkciók önálló, független kollekciói
2. Funkciók kollekciói
3. Az osztályok individuális példányai


A választ a tanulok@erdsoft.com e-mail-címre kell elküldeni, a tárgysorba pedig a következőt kell beírni: HÉTNAP-TANULOK. Sok szerencsét!

 


 

Néhány szó rólunk:

Az ErdSoft (www.erdsoft.com) 2011-ben alakult meg. Csapatunkat a fiatalos lendület, a szakértelem, a folyamatos tanulás és tapasztalatgyűjtés jellemzi. Ügyfeleinknek igyekszünk teljes körű szolgáltatást nyújtani — bátran fordulhatnak hozzánk, legyen szó webfejlesztésről, alkalmazásokról, SEO-optimalizálásról, grafikai tervezésről, marketingről vagy szövegírásról. Csapatunk sikerét mi sem bizonyítja jobban, mint a több száz elkészült weboldal és a számos elégedett ügyfél Szerbiában, Magyarországon és az Egyesült Királyságban.

Szeretne értesülni, ha új cikk jelenik meg Számtek rovatunkban? Iratkozzon fel értesítőnkre!

E-mailben értesíteni fogjuk Önt az új cikkekről. Feliratkozáshoz kérjük adja meg a nevét és az e-mail címét.

Hozzászólások

Kapcsolódó cikkek

PHP-osztályok és -objektumok (1.)
Számtek
PHP-osztályok és -objektumok (1.)
Számtek
  • Erdsoft
  • 2019.10.17.
  • LXXIV. évfolyam 42. szám
Facebook

Támogatóink