Cosa sono le costanti di classe OOP in PHP?

Cosa Sono Le Costanti Di Classe Oop In Php



Un paradigma di programmazione noto come programmazione orientata agli oggetti (OOP) consente agli utenti di scrivere programmi modulari e riutilizzabili. Costante l'uso all'interno di una classe è una delle caratteristiche di OOP. Costanti di classe in PHP sono valori che non possono essere modificati dopo essere stati specificati. Sono membri della classe e non sono associati a nessuna istanza di classe specifica.

Cosa sono le costanti di classe in PHP?

Iniziare con, Costanti di classe fare riferimento a un valore che rimane costante nel corso di uno script. In OOP, consente al programmatore di definire un valore che ha un significato specifico all'interno della classe e non può essere aggiornato da nessuno dei metodi della classe. IL cost la parola chiave è usata per specificare costanti di classe , a cui viene assegnato un valore costante nel corso dello script.







UN costante di classe è un valore definito all'interno di una classe che rimane costante per tutta l'esecuzione del programma. Il termine cost è usato per definirli, quindi seguito dal nome e dal valore di quella costante. Una volta definiti, non possono essere modificati durante il runtime.



Ad esempio, possiamo definire a costante di classe per il valore di Pi nel modo seguente:



classe matematica {
costante PI = 3.14 ;
}


Qui abbiamo definito il costante di classe PI per la classe di matematica come 3.14. Poiché una costante è legata alla classe e non a un'istanza di una classe, possiamo accedervi senza un'istanza come in:





eco Matematica::PI;


Rispetto alle variabili regolari, costanti di classe presentano alcune notevoli differenze. In primo luogo, sono immutabili, nel senso che non possono essere modificati una volta definiti. In secondo luogo, valori costanti fanno distinzione tra maiuscole e minuscole, a differenza delle variabili in PHP. Inoltre, le costanti sono definite utilizzando il cost parola chiave, mentre le variabili usano il era parola chiave, che è una distinzione importante.

Accesso alle costanti di classe

Accesso costanti di classe si può fare in due modi.



1: utilizzo della risoluzione dell'ambito (::)

In primo luogo, il costanti di classe essere accessibile utilizzando il risoluzione ambito (::) operatore, come in:

Nome classe::CONSTANT_NAME


Guarda un esempio:

< ?php
classe Persona {
const Nome = 'Larry' ;
cost Età = 32 ;
const Nazionalità = 'Americano' ;
}
eco Persona::Nome, ' \N ' ;
eco Personaggio, ' \N ' ;
eco Persona::Nazionalità;
? >


Nel codice sopra, il Persona class specifica Nome, Età e Nazionalità come tre costanti . Ogni costante ha una stringa o un valore intero definito per essa.

IL :: L'operatore viene utilizzato insieme al nome della costante per accedere al valore di una costante di classe. Ad esempio, usiamo la sintassi Persona::Nome per recuperare il valore di Nome costante.

Infine, stampiamo sullo schermo i valori delle costanti Nome, Età e Nazionalità usando il comando echo.

2: Utilizzo della parola chiave 'self'.

In alternativa, possiamo anche accedere al file costanti di classe all'interno della classe stessa utilizzando il `sé` parola chiave seguita dal nome della costante indicato di seguito:

self::CONSTANT_NAME


Guarda un esempio per accedere a una costante usando il se stesso parola chiave.

< ?php
Circolo di classe {
costante PI = 3.14159 ;
privato $raggio ;
pubblico funzione __costruire ( $raggio ) {
$questo - > raggio = $raggio ;
}
pubblico funzione La zona ( ) {
ritorno self::PI * $questo - > raggio * $questo - > raggio;
}
}
$cerchio = nuovo Cerchio ( 16 ) ;
eco $cerchio - > La zona ( ) ;
? >


Nell'esempio precedente, una classe denominata Circle specifica una proprietà privata denominata $radius e una costante denominata PI. La formula utilizzata dal getArea() funzione per ottenere l'area di un cerchio è PI * raggio * raggio , dove PI è il valore della costante PI e raggio è il valore del parametro $radius.

All'interno del getArea() metodo, utilizziamo il se stesso parola chiave seguita dal nome della costante per ottenere il valore della costante PI: self::PI .


Ci sono alcune considerazioni da tenere a mente durante la definizione costanti di classe . Innanzitutto, assicurati che il nome della costante di classe sia univoco all'interno della classe. In secondo luogo, dovrebbe aderire alle stesse convenzioni di denominazione dei nomi delle classi, ovvero utilizzare Camel Case per le costanti. Infine, è buona norma definire solo valori scalari, come numeri interi e stringhe, come costanti di classe .

Ereditarietà delle costanti di classe

Un'altra caratteristica importante di costanti di classe è che possono essere ereditati dalle classi figlie. In sostanza, una sottoclasse può accedere ai valori costanti definiti dalla sua classe genitore utilizzando il genitore parola chiave. Per esempio:

< ?php
classe Animale {
cost ANIMAL_TYPE = 'mammifero' ;
}
la classe Cane estende Animale {
pubblico funzione getType ( ) {
eco 'Il cane è un' , genitore::ANIMAL_TYPE;
}
}
$cane = nuovo cane ( ) ;
$cane - > getType ( ) ;
? >


In questa illustrazione, la classe Animal ha una costante con il valore ' mammifero ' di nome TIPO_ANIMALE . IL Cane è una sottoclasse che deriva dalla classe Animal.

La funzione pubblica getType() della classe Dog emette semplicemente il valore di the UN NIMAL_TYPE costante accedendo alla costante della classe genitore usando il genitore::parola chiave .

Infine, costruiamo un oggetto di classe Dog e usiamo il getType() funzione, che restituisce il valore della costante ereditata della classe Animal TIPO_ANIMALE .

Conclusione

L'impiego di costanti di classe è un componente chiave della programmazione orientata agli oggetti in PHP e altri linguaggi di programmazione . Usando costanti di classe , possiamo evitare valori codificati nel programma, che possono essere una seccatura durante l'aggiornamento del codice. È importante aderire alle convenzioni di denominazione e tenere presente l'accessibilità delle costanti di classe all'interno del programma durante la loro definizione.