Wat zijn OOP-klasseconstanten in PHP?

Wat Zijn Oop Klasseconstanten In Php



Een programmeerparadigma dat bekend staat als objectgeoriënteerd programmeren (OOP) stelt gebruikers in staat om modulaire, herbruikbare programma's te schrijven. Constante gebruik binnen een klasse is een van de kenmerken van OOP. Klasse constanten in PHP zijn waarden die niet kunnen worden gewijzigd nadat ze zijn opgegeven. Ze zijn lid van de klasse en zijn niet gekoppeld aan een specifieke klasse-instantie.

Wat zijn klassenconstanten in PHP?

Beginnen met, Klasse constanten verwijzen naar een waarde die constant blijft in de loop van een script. In OOP kan de programmeur een waarde definiëren die een specifieke betekenis heeft binnen de klasse en niet kan worden bijgewerkt door een van de klassenmethoden. De const trefwoord wordt gebruikt om te specificeren klasse constanten , die in de loop van het script een constante waarde krijgen.







A klasse constant is een waarde gedefinieerd binnen een klasse die constant blijft tijdens de uitvoering van het programma. De voorwaarde const wordt gebruikt om ze te definiëren, gevolgd door de naam en waarde van die constante. Eenmaal gedefinieerd, kunnen ze tijdens runtime niet meer worden gewijzigd.



We kunnen bijvoorbeeld een definiëren klasse constant voor de waarde van Pi op de volgende manier:



klas wiskunde {
constant PI = 3.14 ;
}


Hier hebben we de gedefinieerd klasseconstante PI voor de wiskundeklas als 3.14. Omdat een constante aan de klasse is gekoppeld en niet aan een instantie van een klasse, hebben we er toegang toe zonder instantie, zoals in:





echo Wiskunde::PI;


Vergeleken met reguliere variabelen, klasse constanten hebben een paar opvallende verschillen. Ten eerste zijn ze onveranderlijk, wat betekent dat ze niet kunnen worden gewijzigd als ze eenmaal zijn gedefinieerd. Ten tweede, constante waarden zijn hoofdlettergevoelig, in tegenstelling tot variabelen in PHP. Bovendien worden constanten gedefinieerd met behulp van de const trefwoord, terwijl variabelen de was trefwoord, wat een belangrijk onderscheid is.

Toegang tot klassenconstanten

Toegang krijgen klasse constanten kan op twee manieren.



1: Bereikresolutie gebruiken (::)

Ten eerste de klasse constanten toegankelijk zijn via de reikwijdte resolutie (::) operator, zoals in:

Klasnaam::CONSTANT_NAME


Kijk naar een voorbeeld:

< ?php
klasse Persoon {
const Naam = 'Larry' ;
const Leeftijd = 32 ;
const Nationaliteit = 'Amerikaans' ;
}
echo Persoon::Naam, ' \N ' ;
echo Personage, ' \N ' ;
echo Persoon::Nationaliteit;
? >


In de bovenstaande code is de Persoon klasse specificeert Naam, Leeftijd en Nationaliteit als drie constanten . Voor elke constante is een tekenreeks of geheel getal gedefinieerd.

De :: operator wordt gebruikt in combinatie met de naam van de constante om toegang te krijgen tot de waarde van een klasseconstante. We gebruiken bijvoorbeeld de syntaxis Persoon::Naam om de waarde van de op te halen Naam constante.

Ten slotte printen we de waarden van de constanten Naam, Leeftijd en Nationaliteit op het scherm met behulp van de opdracht echo.

2: Het sleutelwoord 'zelf' gebruiken

Als alternatief kunnen we ook toegang krijgen tot de klasse constanten binnen de klasse zelf met behulp van de `zelf` trefwoord gevolgd door de onderstaande constante naam:

zelf::CONSTANT_NAME


Bekijk een voorbeeld om toegang te krijgen tot een constante met behulp van de zelf trefwoord.

< ?php
klasse Cirkel {
constant PI = 3.14159 ;
privaat $ straal ;
openbaar functie __constructie ( $ straal ) {
$ dit - > straal = $ straal ;
}
openbaar functie Gebied ( ) {
opbrengst zelf::PI * $ dit - > straal * $ dit - > straal;
}
}
$ cirkel = nieuwe Cirkel ( 16 ) ;
echo $ cirkel - > Gebied ( ) ;
? >


In dit bovenstaande voorbeeld specificeert een klasse met de naam Circle een privé-eigenschap genaamd $radius en een constante genaamd PI. De formule die wordt gebruikt door de getGebied() functie om de oppervlakte van een cirkel te krijgen is PI * straal * straal , waarbij PI de waarde van de PI-constante is en radius de waarde van de parameter $radius.

Binnen de getGebied() methode gebruiken we de zelf trefwoord gevolgd door de naam van de constante om de waarde van de PI-constante te krijgen: zelf::PI .


Er zijn een paar overwegingen waarmee u rekening moet houden bij het definiëren klasse constanten . Zorg er allereerst voor dat de naam van de klasseconstante uniek is binnen de klasse. Ten tweede moet het dezelfde naamgevingsconventies volgen als klassennamen, dat wil zeggen Camel Case gebruiken voor constanten. Ten slotte is het een goede gewoonte om alleen scalaire waarden, zoals gehele getallen en tekenreeksen, te definiëren klasse constanten .

Overerving van klassenconstanten

Een ander belangrijk kenmerk van klasse constanten is dat ze kunnen worden overgenomen door onderliggende klassen. In wezen heeft een subklasse toegang tot de constante waarden die zijn gedefinieerd door de bovenliggende klasse met behulp van de ouder trefwoord. Bijvoorbeeld:

< ?php
klasse dier {
const ANIMAL_TYPE = 'zoogdier' ;
}
klasse Hond breidt Dier uit {
openbaar functie getType ( ) {
echo 'Hond is een' , ouder::ANIMAL_TYPE;
}
}
$hond = nieuwe hond ( ) ;
$hond - > getType ( ) ;
? >


In deze illustratie heeft de klasse Animal een constante met de waarde ' zoogdier ' genaamd DIER_TYPE . De Hond is een subklasse die is afgeleid van de klasse Animal.

De publieke functie getType() van de klasse Dog voert eenvoudigweg de waarde uit van de A NIMAL_TYPE constant door toegang te krijgen tot de constante van de bovenliggende klasse met behulp van de ouder::zoekwoord .

Ten slotte construeren we een Dog-klasseobject en gebruiken we de getType() functie, die de waarde van de overgeërfde constante van de klasse Animal retourneert DIER_TYPE .

Conclusie

Het gebruik van klasse constanten is een belangrijk onderdeel van objectgeoriënteerd programmeren in PHP en andere programmeertalen . Door het gebruiken van klasse constanten , kunnen we hard-gecodeerde waarden in het programma vermijden, wat een gedoe kan zijn tijdens het updaten van de code. Het is belangrijk om de naamgevingsconventies te volgen en de toegankelijkheid van klasseconstanten binnen het programma in gedachten te houden bij het definiëren ervan.