PHP Classi OOP: Guida Completa per PHP 8 con Esempi Pratici

Loading

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.";
    }
}
?>

Istanzia con new Auto().

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.

VisibilitàDescrizioneEsempio
publicAccessibile ovunquepublic string $nome; 
protectedDa classe/erediprotected int $prezzo; 
privateSolo nella classeprivate function calcola() 
readonly (PHP 8.1+)Scrittura solo in initpublic readonly int $id; 

Esempio con type hinting:

class Utente {
    public function __construct(
        public string $nome,
        public int $eta
    ) {}  // Constructor promotion PHP 8
}