Salta ai contenuti

Classi e oggetti

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

Una classe e un modello. Un oggetto e una copia 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 oggetto.

Le proprieta sono variabili dentro una classe.

public string $nome;
public float $prezzo;

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

I metodi sono funzioni 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: utenti, prodotti, ordini, articoli.

Un array associativo puo 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: un prodotto ha un nome e un prezzo. Questo aiuta 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.