Come abbiamo visto in precedenza, tramite il modello orientato agli oggetti è possibile centralizzare più funzionalità all'interno di un'unica "postazione". Questa postazione prende il nome di classe. Una classe è una "struttura" con al suo interno variabili e funzioni che condividono funzionalità e risorse, che rimangono in attesa di essere utilizzate tramite le istanze della classe stessa.
Classi, oggetti, proprietà, metodi
Prima di addentrarci nell'argomento è necessaria una conoscenza di base delle differenze tra gli oggetti, le classi, le proprietà e i metodi.
Definizione base dell'OOP:
| Elemento | Descrizione |
|---|---|
| Proprietà | Variabili di una classe. Funzionano esattamente come le variabili regolari, tranne per il fatto che sono legate all'oggetto. |
| Metodi | Funzioni specifiche di una classe. Le azioni che un oggetto sarà in grado di eseguire. |
| Oggetto | Un oggetto è un'istanza di una classe. |
Definiamo quindi la nostra prima classe
<?php
class Person {
// proprietà
public $name = "";
//costruttore
public function __construct($name)
{
//inizializzare della variabile $name
$this->name = $name;
}
//metodi
public function getName() {
//$this rappresenta l'oggetto che sarà costruito a runtime
return $this->name;
}
}
//istanzia un nuovo oggetto della classe Person
$customer1 = new person("Giuseppe Rossi");
//istanzia un nuovo oggetto della classe Person
$customer2 = new person("Guglielmo Cancelli");
echo "Cliente: ".$customer1->getName()."<br>";
echo "Cliente: ".$customer2->getName()."<br>";
}
?>
Nell'esempio abbiamo creato la classe Person, utilizzando la parola chiave class, seguita dal nome della classe e una serie di parentesi graffe {}.
Proprietà
Per aggiungere proprietà (variabili) alla classe, utilizzeremo il seguente codice:
public $name;
Nell'esempio abbiamo creato un unico attributo: $name. La keyword public, di cui parleremo nei prossimi capitoli, determina invece il livello di visibilità delle proprietà.
I metodi
Una volta create le proprietà possiamo definire il nostro metodo getName per accedere al contenuto della proprietà $name:
public function getName() {
//$this rappresenta l'oggetto che sarà costruito a runtime
return $this->name;
}
Per accedere agli attributi dell'oggetto la sintassi da utilizzare è la seguente:
return $this->name;
L'oggetto
La classe è una dichiarazione di metodi e proprietà che lavorano su di essa e per questo motivo non può essere usata direttamente. Per poterla utilizzare bisogna invece istanziare un oggetto.
Per creare una nuova istanza, basterà scrivere:
$customer1 = new person("Giuseppe Rossi");
$customer2 = new person("Guglielmo Cancelli");
La chiave new, crea una nuova istanza di person e la assegna a $customer. In questo metodo, tutti i valori dati dai parametri sono configurati esattamente per questa istanza; tali valori sono inoltre unici per ogni istanza. La stessa sintassi, utilizzata per istanziare gli attributi dell'oggetto, viene usata anche per richiamare un metodo della classe su un oggetto; quindi, per richiamare getName() sull'oggetto $customer1 della classe person, utilizziamo:
$customer1->getName();
Il codice produrrà il seguente output:
Cliente: Giuseppe Rossi
Cliente: Guglielmo Cancelli
Nota: Nel nostro esempio abbiamo usato il metodo __construct, utile per inizializzare la variabile interna $name. I parametri passati tra parentesi (se previsti) sono quelli richiesti dalla funzione __construct. Del metodo __construct e degli altri metodi magici di PHP parleremo più avanti nella guida.
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto: