Salta ai contenuti
Manuale LogoManuale Logo

Classi e oggetti

Quando un programma cresce, variabili e funzioni sparse possono diventare difficili da seguire. La programmazione a oggetti riunisce dati e comportamenti collegati.

Una classe è un modello. Un oggetto è un’istanza concreta creata da quel modello.

<?php
class Prodotto {
public string $nome;
public float $prezzo;
}
$quaderno = new Prodotto();
$quaderno->nome = "Quaderno";
$quaderno->prezzo = 3.50;
echo $quaderno->nome;

new Prodotto() crea un’istanza della classe.

Le proprietà sono variabili definite dentro una classe.

public string $nome;
public float $prezzo;

public significa che puoi leggere e modificare la proprietà dall’esterno.

I metodi sono funzioni definite dentro una classe.

<?php
class Prodotto {
public string $nome;
public float $prezzo;
public function descrizione(): string {
return $this->nome . " costa " . $this->prezzo . " euro";
}
}
$prodotto = new Prodotto();
$prodotto->nome = "Penna";
$prodotto->prezzo = 1.20;
echo $prodotto->descrizione();

$this indica l’oggetto corrente.

All’inizio puoi scrivere programmi semplici con variabili, array e funzioni. Gli oggetti diventano utili quando vuoi rappresentare concetti del progetto, come utenti, prodotti, ordini o articoli.

Un array associativo può descrivere un prodotto:

<?php
$prodotto = [
"nome" => "Penna",
"prezzo" => 1.20,
];

Una classe rende esplicito che quei dati appartengono a un concetto preciso.

<?php
class Prodotto {
public string $nome;
public float $prezzo;
}

La classe dice che un prodotto ha un nome e un prezzo. È utile quando il progetto cresce.

<?php
$penna = new Prodotto();
$penna->nome = "Penna";
$penna->prezzo = 1.20;
$quaderno = new Prodotto();
$quaderno->nome = "Quaderno";
$quaderno->prezzo = 3.50;

$penna e $quaderno sono due oggetti diversi creati dallo stesso modello.

Per creare un oggetto devi usare new.

<?php
$prodotto = new Prodotto();

Senza new non stai creando un’istanza della classe.