Home Function Le classi PHP

Le classi PHP

22
0

Le classi PHP sono uno dei concetti fondamentali della programmazione orientata agli oggetti (OOP) in PHP. Ti spiegherò i concetti principali in modo semplice, con esempi pratici.

Cos’è una classe?

Una classe è un modello o schema che definisce proprietà (variabili) e metodi (funzioni) che un oggetto può avere. In pratica, una classe è come un progetto, e un oggetto è un’istanza concreta di quel progetto.

Creare una classe in PHP

Per creare una classe in PHP, si usa la parola chiave class. Ecco un esempio base:

<?php
class Automobile {
    // Proprietà (variabili della classe)
    public $marca;
    public $modello;

    // Metodo (funzione della classe)
    public function descrizione() {
        return "Questa automobile è una $this->marca $this->modello.";
    }
}

// Creare un'istanza (oggetto) della classe
$auto1 = new Automobile();
$auto1->marca = "Fiat";
$auto1->modello = "Panda";

// Usare un metodo
echo $auto1->descrizione();
?>

Risultato:

Questa automobile è una Fiat Panda.


Proprietà

Le proprietà sono variabili definite all’interno della classe. Possono essere pubbliche (public), private (private) o protette (protected).

  • Public: Accessibile ovunque.
  • Private: Accessibile solo all’interno della classe.
  • Protected: Accessibile dalla classe e dalle sue sottoclassi.

Esempio:

class Persona {
    public $nome;          // Accessibile ovunque
    private $password;      // Accessibile solo nella classe

    public function setPassword($pass) {
        $this->password = $pass; // Imposta la password
    }

    public function mostraPassword() {
        return $this->password; // Restituisce la password
    }
}

$persona = new Persona();
$persona->nome = "Mario";
$persona->setPassword("12345");
echo $persona->mostraPassword(); // Mostra "12345"

Metodi

I metodi sono funzioni definite all’interno di una classe. Puoi usare il prefisso public, private o protected per definire la visibilità.

Esempio:

class Calcolatrice {
    public function somma($a, $b) {
        return $a + $b;
    }
}

$calcolatrice = new Calcolatrice();
echo $calcolatrice-&amp;amp;gt;somma(5, 3); // Mostra 8

 

Costruttori

Un costruttore è un metodo speciale che viene chiamato automaticamente quando un oggetto viene creato. Si definisce con __construct.

Esempio:

class Automobile {
    public $marca;
    public $modello;

    // Costruttore
    public function __construct($marca, $modello) {
        $this->marca = $marca;
        $this->modello = $modello;
    }

    public function descrizione() {
        return "Questa automobile è una $this->marca $this->modello.";
    }
}

$auto = new Automobile("Tesla", "Model S");
echo $auto->descrizione(); // Mostra: Questa automobile è una Tesla Model S.

Ereditarietà

L’ereditarietà permette a una classe di “ereditare” le proprietà e i metodi di un’altra classe. Si usa la parola chiave extends.

Esempio:

class Veicolo {
    public $tipo;

    public function descrizione() {
        return "Questo è un $this->tipo.";
    }
}

class Moto extends Veicolo {
    public $marca;

    public function dettagli() {
        return "Questa è una moto della marca $this->marca.";
    }
}

$moto = new Moto();
$moto->tipo = "veicolo a due ruote";
$moto->marca = "Ducati";

echo $moto->descrizione(); // Mostra: Questo è un veicolo a due ruote.
echo $moto->dettagli();    // Mostra: Questa è una moto della marca Ducati.

Encapsulation

L’incapsulamento è il principio di nascondere i dettagli interni della classe, usando private o protected per le proprietà e fornendo metodi pubblici per accedere o modificare i dati.

Esempio:

class ContoBancario {
    private $saldo = 0;

    public function deposita($importo) {
        $this->saldo += $importo;
    }

    public function preleva($importo) {
        if ($importo > $this->saldo) {
            return "Saldo insufficiente.";
        }
        $this->saldo -= $importo;
        return "Prelievo effettuato.";
    }

    public function mostraSaldo() {
        return "Il saldo è: €" . $this->saldo;
    }
}

$conto = new ContoBancario();
$conto->deposita(500);
echo $conto->mostraSaldo(); // Mostra: Il saldo è: €500
echo $conto->preleva(300); // Mostra: Prelievo effettuato.
echo $conto->mostraSaldo(); // Mostra: Il saldo è: €200

 

Polimorfismo

Il polimorfismo consente di usare lo stesso metodo in classi diverse, ma con comportamenti differenti.

Esempio:

class Animale {
    public function parla() {
        return "L'animale fa un suono.";
    }
}

class Cane extends Animale {
    public function parla() {
        return "Il cane abbaia.";
    }
}

class Gatto extends Animale {
    public function parla() {
        return "Il gatto miagola.";
    }
}

$animali = [new Cane(), new Gatto(), new Animale()];
foreach ($animali as $animale) {
    echo $animale->parla() . "<br>";
}

 

Risultato:

  • Il cane abbaia.
  • Il gatto miagola.
  • L’animale fa un suono.
Previous articleAtropos.js

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.