Una classe in PHP è un costrutto che definisce un tipo di dato astratto, che raggruppa dati e comportamenti correlati. È un modello o una "ricetta" che descrive come creare oggetti che rappresentano istanze di quella classe. Gli oggetti sono quindi istanze delle classi, cioè variabili che contengono dati specifici per l'istanza e metodi che eseguono operazioni su quei dati.
Una classe definisce proprietà e metodi. Le proprietà rappresentano le variabili dell'oggetto, mentre i metodi rappresentano le funzioni che l'oggetto può eseguire. Una classe può anche contenere costanti, che sono valori che non possono essere modificati.
Per definire una classe in PHP, è necessario seguire una serie di passi. Innanzitutto, è necessario decidere quali dati (proprieta') e comportamenti (metodi) dovranno essere inclusi nella classe. Quindi, si crea la struttura di base della classe, che include il nome della classe, le proprietà e i metodi.
La definizione di una classe inizia con la parola chiave class
, seguita dal nome della classe (convenzionalmente iniziale maiuscola) e dalle parentesi graffe, che racchiudono la definizione della classe. Ecco un esempio di classe in PHP:
class Automobile {
public $marca;
public $modello;
public $anno;
public function getInfo() {
return $this->marca . " " . $this->modello . " (" . $this->anno . ")";
}
}
In questo esempio, abbiamo definito una classe Automobile
che ha tre proprietà pubbliche (marca
, modello
e anno
) e un metodo pubblico (getInfo()
) che restituisce una stringa che rappresenta l'automobile. La parola chiave public
indica che le proprietà e i metodi sono accessibili da qualsiasi punto del codice.
La proprietà $this
è un riferimento all'oggetto corrente, cioè l'istanza della classe a cui appartiene il metodo. In questo caso, $this->marca
fa riferimento alla proprietà marca
dell'oggetto corrente.
Gli oggetti: istanze delle classi
Per creare un'istanza della classe, è necessario utilizzare la parola chiave new
seguita dal nome della classe e dalle parentesi tonde. Ad esempio, per creare un'istanza della classe Automobile
, si può fare:
$fiat = new Automobile();
Questa istruzione crea un nuovo oggetto Automobile
e lo assegna alla variabile $fiat
. Una volta creata l'istanza, è possibile accedere alle proprietà e ai metodi dell'oggetto utilizzando l'operatore ->
. Ad esempio, per impostare il valore della proprietà marca
, si può fare:
$fiat->marca = "Fiat";
Per chiamare il metodo getInfo()
, si può fare:
echo $fiat->getInfo();
che restituirà la stringa "Fiat - (anno)".
Costruttore di una classe
Il costruttore è un metodo speciale che viene chiamato automaticamente quando si crea un'istanza di una classe. Il costruttore può essere utilizzato per impostare le proprietà dell'oggetto e inizializzare lo stato iniziale dell'oggetto.
In PHP, il costruttore è identificato dalla parola chiave __construct()
. Ecco un esempio di come si potrebbe definire un costruttore per la classe Automobile
:
class Automobile {
public $marca;
public $modello;
public $anno;
public function __construct($marca, $modello, $anno) {
$this->marca = $marca;
$this->modello = $modello;
$this->anno = $anno;
}
public function getInfo() {
return $this->marca . " " . $this->modello . " (" . $this->anno . ")";
}
}
In questo esempio, abbiamo aggiunto un costruttore alla classe Automobile
che accetta tre parametri: $marca
, $modello
e $anno
. Il costruttore imposta i valori delle proprietà marca
, modello
e anno
dell'oggetto corrente utilizzando i valori dei parametri.
Per creare un'istanza della classe Automobile
utilizzando il costruttore, si può fare:
$fiat = new Automobile("Fiat", "Panda", 2020);
Questa istruzione crea un nuovo oggetto Automobile
e passa i parametri "Fiat", "Panda" e 2020 al costruttore. Il costruttore imposterà le proprietà dell'oggetto $fiat
con i valori specificati.
In conclusione, il costruttore è un metodo speciale utilizzato per inizializzare gli oggetti di una classe. Quando viene chiamato il costruttore, vengono impostate le proprietà dell'oggetto iniziale e viene stabilito lo stato iniziale dell'oggetto. In questo modo, i costruttori consentono di creare oggetti in uno stato coerente e prevedibile, pronti per l'utilizzo.