Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 3 di 50
  • livello avanzato
Indice lezioni

Le basi della OOP in PHP

I concetti fondamentali riguardanti proprietà metodi e oggetti, componenti fondamentali che ci permetteranno di creare la nostra prima classe e comprendere il significato del concetto di istanza nella OOP.
I concetti fondamentali riguardanti proprietà metodi e oggetti, componenti fondamentali che ci permetteranno di creare la nostra prima classe e comprendere il significato del concetto di istanza nella OOP.
Link copiato negli appunti

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.

Ti consigliamo anche