Az úgynevezett programozási paradigma objektum-orientált programozás (OOP) lehetővé teszi a felhasználók számára, hogy moduláris, újrafelhasználható programokat írjanak. Állandó osztályon belüli használat az OOP egyik jellemzője. Osztálykonstansok PHP-ben olyan értékek, amelyek megadása után nem módosíthatók. Ezek az osztály tagjai, és nem kapcsolódnak egyetlen osztálypéldányhoz sem.
Mik azok az osztálykonstansok a PHP-ben?
Mindenekelőtt, Osztálykonstansok olyan értékre utal, amely állandó marad a szkript során. Az OOP-ban lehetővé teszi a programozó számára, hogy olyan értéket definiáljon, amelynek az osztályon belül meghatározott jelentése van, és amelyet egyik osztálymetódus sem frissíthet. A const kulcsszót használjuk a megadáshoz osztálykonstansok , amelyek állandó értéket kapnak a szkript során.
A osztály állandó egy osztályon belül meghatározott érték, amely állandó marad a program végrehajtása során. A kifejezés const definiálására szolgál, majd ezt követi az adott állandó neve és értéke. Miután meghatározták, futás közben nem módosíthatók.
Például meghatározhatjuk a osztály állandó Pi értékére a következő módon:
osztály matematika {
const PI = 3.14 ;
}
Itt definiáltuk a osztály állandó PI a matek órára 3.14-ként. Mivel egy konstans az osztályhoz van kötve, és nem egy osztály példányához, példány nélkül is hozzáférhetünk, például:
visszhang Matek::PI;
A normál változókhoz képest osztálykonstansok van néhány jelentős különbség. Először is, megváltoztathatatlanok, vagyis nem módosíthatók, ha egyszer meghatározták őket. Másodszor, állandó értékeket érzékenyek a kis- és nagybetűkre, ellentétben a PHP változóival. Továbbá a konstansokat a const kulcsszó, míg a változók a volt kulcsszó, ami fontos megkülönböztetés.
Az osztálykonstansok elérése
Hozzáférés osztálykonstansok kétféleképpen lehet megtenni.
1: Scope felbontás használata (::)
Először is a osztálykonstansok segítségével lehet elérni hatókör felbontás (::) operátor, mint itt:
Osztálynév::CONSTANT_NAME
Nézz egy példát:
osztály Személy {
const Név = 'Larry' ;
const Kor = 32 ;
const Nemzetiség = 'Amerikai' ;
}
visszhang Személy::Név, ' \n ' ;
visszhang Személyiség, ' \n ' ;
visszhang Személy:: Állampolgárság;
? >
A fenti kódban a Személy osztály a Név, Életkor és Nemzetiség értéket háromként adja meg állandók . Minden konstanshoz van egy karakterlánc vagy egész érték definiálva.
A :: operátort az állandó nevével együtt használjuk az osztálykonstans értékének eléréséhez. Például a szintaxist használjuk Személy::Név lekérni az értékét Név állandó.
Végül az echo paranccsal kiírjuk a képernyőre a Név, Életkor és Nemzetiség állandó értékeit.
2: Az „én” kulcsszó használata
Alternatív megoldásként elérhetjük a osztálykonstansok magában az osztályban a 'önmagam'. kulcsszó után az alábbiakban megadott állandó név:
self::CONSTANT_NAME
Nézzen meg egy példát egy állandó eléréséhez a maga kulcsszó.
osztályos Kör {
const PI = 3.14159 ;
magán $sugár ;
nyilvános funkció __construct ( $sugár ) {
$ezt - > sugár = $sugár ;
}
nyilvános funkció Terület ( ) {
Visszatérés én::PI * $ezt - > sugár * $ezt - > sugár;
}
}
$kör = új Kör ( 16 ) ;
visszhang $kör - > Terület ( ) ;
? >
Ebben a fenti példában a Circle nevű osztály egy $sugár nevű magántulajdont és egy PI nevű állandót határoz meg. által használt képlet a getArea() függvény a kör területének kiszámításához PI * sugár * sugár , ahol PI a PI állandó értéke, a sugár pedig a $radius paraméter értéke.
Belül getArea() módszert alkalmazzuk a maga kulcsszó, majd az állandó neve, hogy megkapjuk a PI állandó értékét: én::PI .
A meghatározás során néhány szempontot figyelembe kell venni osztálykonstansok . Először is győződjön meg arról, hogy az osztálykonstans neve egyedi az osztályon belül. Másodszor, ugyanazokat az elnevezési szabályokat kell követnie, mint az osztályneveknek, vagyis a Camel Case-t használja az állandókhoz. Végül jó gyakorlat, ha csak skaláris értékeket határoz meg, például egész számokat és karakterláncokat, mint pl. osztálykonstansok .
Az osztálykonstansok öröklődése
Egy másik fontos jellemzője osztálykonstansok az, hogy a gyermekosztályok örökölhetik őket. Lényegében egy alosztály hozzáférhet a szülőosztálya által meghatározott konstans értékekhez a segítségével szülő kulcsszó. Például:
< ?phposztály Állat {
const ANIMAL_TYPE = 'emlős' ;
}
osztály Kutya kiterjeszti Állat {
nyilvános funkció getType ( ) {
visszhang 'A kutya egy' , szülő::ANIMAL_TYPE;
}
}
$kutya = új kutya ( ) ;
$kutya - > getType ( ) ;
? >
Ezen az ábrán az Állat osztálynak van egy állandója ' emlős ' nevezett ANIMAL_TYPE . A Kutya egy alosztály, amely az Animal osztályból származik.
A nyilvános funkció getType() a Dog osztályból egyszerűen kiadja az értékét A NIMAL_TYPE konstans a szülőosztály állandójának elérésével a szülő::kulcsszó .
Végül összeállítunk egy Dog osztály objektumot, és használjuk a getType() függvény, amely visszaadja az Animal osztály örökölt állandójának értékét ANIMAL_TYPE .
Következtetés
A ... haszna osztálykonstansok a PHP és más programozási nyelvek objektum-orientált programozásának kulcsfontosságú összetevője . Használva osztálykonstansok , elkerülhetjük a programban a keményen kódolt értékeket, ami gondot okozhat a kód frissítése során. Fontos az elnevezési konvenciók betartása, és az osztálykonstansok programon belüli elérhetőségét szem előtt tartani azok meghatározásakor.