![]()
PHP 8 rende la programmazione orientata agli oggetti (OOP) più potente e intuitiva rispetto a PHP 5. Questa guida aggiornata copre la definizione di classi, proprietà, metodi e concetti avanzati con esempi testabili.
Definire una Classe Base
Usa class NomeClasse per creare una classe, con proprietà dichiarate come variabili pubbliche/private e metodi come funzioni.
<?php
class Auto {
public $marca = 'Fiat'; // Proprietà pubblica
private $km = 0; // Proprietà privata
public function descrivi() {
return "Auto {$this->marca} con {$this->km} km.";
}
}
?>
Costruttore e Distruttore
Il constructor __construct() si esegue all’istanziazione; usa $this per accedere alle proprietà.
class Auto {
public $marca;
public function __construct($marca) {
$this->marca = $marca;
}
public function __destruct() {
echo "Auto distrutta.";
}
}
$miaAuto = new Auto('Ferrari'); // Esegue __construct
Ereditarietà e Override
Estendi classi con extends; override metodi per personalizzare.
class AutoSportiva extends Auto {
public function descrivi() {
return parent::descrivi() . " Versione sportiva!";
}
}
$sportiva = new AutoSportiva('Lamborghini');
echo $sportiva->descrivi();
Chiama il metodo parent con parent::metodo().
Proprietà e Metodi Avanzati
PHP 8 introduce typed properties, constructor promotion e attributi.
Esempio con type hinting:
class Utente {
public function __construct(
public string $nome,
public int $eta
) {} // Constructor promotion PHP 8
}