Le costanti di una classe in PHP
In questo articolo ci occupiamo dell'utilizzo di COSTANTI all'interno di una classe PHP.
Sono variabili immutabili da utilizzare all'intero di una classe, non è quindi possibile cambiarne il valore per tutta la durata dello script: se provassimo a cambiarne valore otterremmo un errore.
Vediamo subito un esempio, senza l'utilizzo di costanti
<?php
class Car {
public $color='';
public $marca='';
public function __costruct(){
$this->color=$color;
$this->marca=$marca;
}
}
$myCar= new Car('rosso','ferrari');
echo $myCar->colore;
echo $myCar->marca;
?>
I due echo renderanno la stringa "rosso" e "ferrari.
Introduciamo in questo esempio le costanti
<?php
class Car {
public $color='';
public $marca='';
const MARCA_FERRARI='ferrari';
const MARCA_BMW='bmw';
const MARCA_AUDI='audi';
const COLORE_ROSSO='rosso';
const COLORE_GIALLO='giallo';
const COLORE_NERO='nero';
public function __costruct(){
$this->color=$color;
$this->marca=$marca;
}
}
$myCar= new Car(Car::COLORE_NERO,Car::MARCA_FERRARI);
echo $myCar->colore;
echo $myCar->marca;
?>
E' prassi utilizzare come nome della costante in maiuscolo, e possiamo assegnargli tutti i valori che vogliamo: stringhe, numeri, boleano, o un array.
Per accedere alla costante, da fuori della classe si utilizza il nome della classe seguita da due volte duepunti e il nome della costante (in modo simile a quanto abbiamo visto per proprietà e metodi statici).
In questo esempio, è presente un metodo costruttore, che sappiamo venire automaticamente chiamato quando la classe viene istanziata, e che consente il passaggio di parametri, nel nostro esempio il colore e la marca: la marca la passiamo come costante con Car::MARCA_FERRARI.
Per accedere invece alla costante da dentro la classe si utilizza la parola chiave "self" (in modo simile a quanto abbiamo visto per proprietà e metodi statici).
<?php
class Car {
public $color='';
public $marca='';
const MARCA_FERRARI='ferrari';
const MARCA_BMW='bmw';
const MARCA_AUDI='audi';
const COLORE_ROSSO='rosso';
const COLORE_GIALLO='giallo';
const COLORE_NERO='nero';
public function __costruct(){
$this->color=self::COLORE_ROSSO;
$this->marca=self::MARCA_FERRARI;
}
}
?>
Potete creare quante costanti volete all'interno di una classe.
Potrebbe interessarti
- Le interfacce in PHP
- Le classi astratte e i metodi astratti, in PHP
- Come estendere una classe in PHP ed il concetto di ereditarietà.
- Le proprietà e i metodi STATICI in PHP
- Il metodo costruttore in PHP
- Autoloading classi in PHP, con un occhio ai namespace ed allo standard di programmazione psr-4.
- Cos'è il type hinting, la sua evoluzione nelle varie versioni di PHP, ed il controllo sulla tipologia di dato con la modalità strict_mode.
- I metodi magici in PHP.
- Cosa sono i namespace in PHP. La guida completa, con esempi.
- Cosa sono i trait in PHP. La guida completa con esempi.
- Le classi in PHP. introduzione alla programmazione in stile OOP, metodi e proprietà di una classe.