www.zambros.it

Certificato Google Adwords

Google Partners - Certification piccolo


Spiegazione delle classi in PHP
Lunedì 26 Luglio 2010 12:51
Indice
Spiegazione delle classi in PHP
Costruzione e distruzione di un oggetto
Tutte le pagine

Cos'è una classe

Definiamo innanzitutto cos'è una classe. Una classe è un tipo di dato che al suo interno definisce tutta la struttura dell'oggetto che si vuole descrivere (classificare).
Una classe definisce quindi due entità fondamentali del paradigma:

  • gli attributi (o proprietà) che compongono la struttura dei dati che descrive una classe di oggetti
  • i metodi, cioè le operazioni che possono essere compiute all'interno dell'oggetto e in particolare sugli attributi

Utilizzando la terminologia object oriented si afferma che un oggetto è un'istanza di una classe per indicare una relazione analoga a quella che intercorre tra una variabile e il suo tipo.


Definiamo la nostra prima classe

Per definire una classe in PHP5 si utilizza la seguente sintassi:

class NomeClasse extends NomeSuperClasse

{

      //dichiarazione degli attributi

 

      //dichiarazione di costruttore e distruttore

 

      //dichiarazione e definizione metodi

}

 

esempio

 

class persona

{

      //attributi

      private $nome

 

      //costruttore

      public function __construct($n)

      {

           $this->nome = $n;

      }

 

      //metodi

      public function getNome()

      {

           return $this->nome;

      }

}

 

Esempio completo in una pagina html:

 

<?php

class persona

{

      //attributi

      private $nome

 

      //costruttore

      public function __construct($n)

      {

           $this->nome = $n;

      }

 

      //metodi

      public function getNome()

      {

           return $this->nome;

      }

}

?>

<html>

<head>

<title>La mia prima classe</title>

</head>

<body>

<?php

$utente = new persona("Mario Rossi");

print("Il nome del primo oggetto è: <b>".$utente->getNome()."</b><br><br>");

 

$utente = new persona("Enrico Bianchi");

print("Il nome del secondo oggetto è: <b>".$utente->getNome()."</b><br><br>");

?>

</body>

</html>

 

Nell'esempio è stato definito un unico attributo privato: $nome. Il fatto che sia privato significa che non è visibile nè utilizzabile al di fuori della classe, ma può essere impiegato esclusivamente da metodi interni alla classe stessa.

Per accedere al contenuto di questa proprietà, che è una variabile PHP a tutti gli effetti, la classe persona fornisce un metodo apposito: getNome().

Un metodo non è altro che una funzione interna alla definizione della classe e che, a causa della sua collocazione, è in grado di accedere a tutti gli oggetti interni della classe, compresi i suoi attributi privati, e pertanto può restituire in output una copia del valore della variabile che ci interessa.

Come si può vedere dal codice sorgente del metodo, il meccanismo per accedere alla variabile interna è rappresentato dalla sintassi:

$this->nomevariabile

dove $this rappresenta l'oggetto che sarà costruito a runtime e che avrà quindi dei valori all'interno delle proprietà.
Per accedere genericamente a una proprietà o a un metodo di un oggetto si utilizza la seguente sintassi: 

oggetto->nomevariabile

oppure

oggetto->nomemetodo(parametri)

 

Nel nostro esempio esiste anche un altro metodo __construct, che è il costruttore della classe.
Un costruttore è un metodo che deve avere esattamente questo nome e viene eseguito ogni volta che si crea un nuovo oggetto. Può ricevere dei parametri che servono di solito a inizializzare i valori delle proprietà interne dell'oggetto che si sta creando.

Nel nostro caso, infatti, il parametro che viene passato al costruttore viene utilizzato per inizializzare la variabile interna $nome, ancora una volta attraverso l'utilizzo dell'istanza a runtime dell'oggetto, cioè $this.



 

Aggiungi commento


Codice di sicurezza
Aggiorna

SimDice Tweet


Free Software

DadoPubblicato online il simulatore del lancio di dadi. La versione è flash cioè non salva i dati.
Prossimamente ci sarà una versione dove si potranno visualizzare tutti i tiri eseguiti!
L'applicazione si trova a questo link.


Twitter



P.IVA: 03864690239 - CF: ZMBMTT82A25A459W - Cell 338 8835425 - info@zambros.it