Hvad er OOP-klassekonstanter i PHP?

Hvad Er Oop Klassekonstanter I Php



Et programmeringsparadigme kendt som objektorienteret programmering (OOP) gør det muligt for brugere at skrive modulære, genanvendelige programmer. Konstant brug inden for en klasse er en af ​​funktionerne i OOP. Klasse konstanter i PHP er værdier, der ikke kan ændres, efter at de er blevet specificeret. De er medlemmer af klassen og er ikke knyttet til nogen specifik klasseinstans.

Hvad er klassekonstanter i PHP?

Til at starte med, Klasse konstanter referer til en værdi, der forbliver konstant i løbet af et script. I OOP giver det programmøren mulighed for at definere en værdi, der har en specifik betydning inden for klassen og ikke kan opdateres af nogen af ​​klassemetoderne. Det konst nøgleord bruges til at specificere klassekonstanter , som får en konstant værdi i løbet af scriptet.







EN klasse konstant er en værdi defineret inden for en klasse, som forbliver konstant under hele programmets udførelse. Begrebet konst bruges til at definere dem, derefter efterfulgt af navnet og værdien af ​​denne konstant. Når de er defineret, kan de ikke ændres under kørsel.



For eksempel kan vi definere en klasse konstant for værdien af ​​Pi på følgende måde:



klasse matematik {
const PI = 3.14 ;
}


Her har vi defineret klasse konstant PI for matematikklassen som 3.14. Da en konstant er bundet til klassen og ikke en forekomst af en klasse, kan vi få adgang til den uden en forekomst som i:





ekko Math::PI;


Sammenlignet med regulære variabler, klassekonstanter har et par bemærkelsesværdige forskelle. For det første er de uforanderlige, hvilket betyder, at de ikke kan ændres, når de først er defineret. For det andet konstante værdier er store og små bogstaver i modsætning til variabler i PHP. Desuden defineres konstanter ved hjælp af konst søgeord, hvorimod variabler bruger var søgeord, hvilket er en vigtig sondring.

Adgang til klassekonstanter

Adgang klassekonstanter kan gøres på to måder.



1: Brug af omfangsopløsning (::)

For det første klassekonstanter tilgås ved hjælp af scope opløsning (::) operatør, som i:

Klassenavn::CONSTANT_NAME


Se et eksempel:

< ?php
klasse Person {
const Navn = 'Larry' ;
const Alder = 32 ;
const Nationalitet = 'Amerikansk' ;
}
ekko Person::Navn, ' \n ' ;
ekko Person::Alder, ' \n ' ;
ekko Person::Nationalitet;
? >


I ovenstående kode er Person klasse angiver navn, alder og nationalitet som tre konstanter . Hver konstant har en streng eller heltalsværdi defineret for sig.

Det :: operator bruges sammen med konstantens navn for at få adgang til værdien af ​​en klassekonstant. For eksempel bruger vi syntaksen Person:: Navn at hente værdien af Navn konstant.

Til sidst udskriver vi værdierne af konstanterne for navn, alder og nationalitet på skærmen ved hjælp af ekko-kommandoen.

2: Brug af 'selv'-søgeordet

Alternativt kan vi også få adgang til klassekonstanter inden for klassen selv ved hjælp af 'selv' nøgleord efterfulgt af konstantnavnet nedenfor:

selv::CONSTANT_NAME


Se på et eksempel for at få adgang til en konstant ved hjælp af selv søgeord.

< ?php
klasse Cirkel {
const PI = 3,14159 ;
privat $radius ;
offentlig fungere __konstruere ( $radius ) {
$dette - > radius = $radius ;
}
offentlig fungere Areal ( ) {
Vend tilbage selv::PI * $dette - > radius * $dette - > radius;
}
}
$cirkel = ny Cirkel ( 16 ) ;
ekko $cirkel - > Areal ( ) ;
? >


I dette eksempel ovenfor angiver en klasse ved navn Circle en privat egenskab kaldet $radius og en konstant kaldet PI. Formlen brugt af getArea() funktion til at få arealet af en cirkel er PI * radius * radius , hvor PI er PI-konstantens værdi, og radius er værdien af ​​$radius-parameteren.

Indenfor getArea() metoden bruger vi selv nøgleord efterfulgt af navnet på konstanten for at få værdien af ​​PI-konstanten: selv::PI .


Der er et par overvejelser, du skal huske på, når du definerer klassekonstanter . For det første skal du sikre dig, at navnet på klassekonstanten er unikt i klassen. For det andet skal det overholde de samme navnekonventioner som klassenavne, dvs. at bruge Camel Case for konstanter. Endelig er det en god praksis kun at definere skalære værdier, såsom heltal og strenge, som klassekonstanter .

Nedarvning af klassekonstanter

Et andet vigtigt træk ved klassekonstanter er, at de kan arves af børneklasser. I det væsentlige kan en underklasse få adgang til de konstante værdier, der er defineret af dens overordnede klasse ved hjælp af forælder søgeord. For eksempel:

< ?php
klasse Dyr {
const ANIMAL_TYPE = 'pattedyr' ;
}
klasse Hund udvider Dyr {
offentlig fungere getType ( ) {
ekko 'Hund er en' , overordnet::ANIMAL_TYPE;
}
}
$hund = ny Hund ( ) ;
$hund - > getType ( ) ;
? >


I denne illustration har klassen Dyr en konstant med værdien ' pattedyr ' som hedder ANIMAL_TYPE . Det Hund er en underklasse, der stammer fra dyreklassen.

Den offentlige funktion getType() af hundeklassen udlæser simpelthen værdien af EN NIMAL_TYPE konstant ved at få adgang til forældreklassens konstant ved hjælp af forælder::søgeord .

Til sidst konstruerer vi et hunde-klasseobjekt og bruger getType() funktion, som returnerer værdien af ​​Animal-klassens nedarvede konstant ANIMAL_TYPE .

Konklusion

Brugen af klassekonstanter er en nøglekomponent i objektorienteret programmering i PHP og andre programmeringssprog . Ved hjælp af klassekonstanter , kan vi undgå hårdkodede værdier i programmet, hvilket kan være besværligt ved opdatering af koden. Det er vigtigt at overholde navnekonventionerne og at huske på tilgængeligheden af ​​klassekonstanter i programmet, mens de defineres.