Proprietà e metodi



Nelle precedenti lezioni abbiamo utilizzato le parole "variabili" e "funzioni" per indicare le diverse componenti di una classe. In realtà, anche se concettualmente corrette, queste definizioni sono errate. Nella OOP queste componenti vengono chiamate rispettivamente proprietà (o membri) e metodi. Ecco un semplice snippet che chiarisce questo concetto:

// variabili
$a = 10;
$b = 20;

// funzioni
function sayHello() {
        // ...
}

function anotherFn() {
        // ...
}

class MyClass {

        // proprietà
        public $a = 10;
        public $b = 20;
        
        // metodi
        public function sayHello() {
                echo "Hello! " . $this->a . " " . $this->b;
        }

}

Questa separazione è molto importante: mentre le normali variabili e funzioni sono componenti libere o di primo livello, le proprietà ed i metodi di una classe appartengono esclusivamente a questa classe (ed eventualmente alle classe che ereditano, come vedremo nelle successive lezioni).

Uso delle proprietà

Come abbiamo potuto notare nel corso degli esempi precedenti, è possibile assegnare un valore alle proprietà di una classe direttamente nella fase di dichiarazione delle stesse. Ciò che è importante sapere inoltre, è che non si è limitati ai valori semplici (interi, float e boolean), ma è possibile utilizzare anche i valori composti, come gli array, oppure le costanti. Ecco un esempio:

define('ABC', 10);

class MyClass {

        // proprietà
        public $a = array(10, 20, 30, 40, array(50, 60));
        public $b = true;
        public $c = 8.5;
        public $d = 20;
        public $e = ABC;

}

Non si ha però a disposizione tutta la libertà che si avrebbe nel caso delle semplici variabili. Le seguenti operazioni sono infatti errate:

$c = 30;

function get_10() {
        return 10;
}

class MyClass {

        // proprietà
        public $a = new MyAnotherClass;         // errore
        public $b = get_10();                   // errore
        public $c = $c;                         // errore

}

Uso dei metodi

I metodi di una classe si comportano esattamente allo stesso modo delle funzioni di primo livello, tranne per il fatto che i primi riconoscono tutte le keyword appartenenti alla classe (come nel caso di $this che abbiamo studiato nella lezione precedente) mentre, ovviamente, i secondi no. È dunque possibile dichiarare liste variabili di argomenti, impostare valori di default agli argomenti e restituire riferimenti al posto dei valori:

class MyClass {

        // ...

        public function doSomething($a = 10, $b = array(10, 20, 30)) {
                echo $a . $b[0]; 
        }
        
        public function &getRef() {
                return $this->a;
        }

}

$my = new MyClass();

// stampa "1010"
$my->doSomething();

Conclusione

In questa lezione abbiamo imparato come utilizzare due dei tre componenti fondamentali di una classe che ci permettono di centralizzare l'implementazione e rendere modulare l'esecuzione. Nella prossima lezione analizzeremo gli ultimi componenti basilari che è possibile porre all'interno di una classe: le costanti.

Ultimi articoli PHP

Sessioni PHP: cosa sono, come si usano

Dalla configurazione di PHP, alla gestione delle sessioni in un...

Continuous Integration: automatizziamo i client con Phing

Continuous Integration: automatizziamo i client con Phing. Esempi...

Archiviazione delle applicazioni PHP con Phar

Come incorporare intere applicazioni PHP all'interno di un singolo...

I traits in PHP 5.4

Cosa sono, a cosa servono e come si unsano i traits, la novità per...

PHP 5.4: il web server integrato

Impara ad usare il web server integrato nella versione 5.4 di PHP:...

Altri articoli

Guide PHP

Guida Yii Framework

Come creare applicazioni Web in modo semplice e veloce con il...

Guida Applicazioni Facebook con PHP

Come realizzare un'applicazione per Facebook. Dalle basi della...

Guida PHP con Windows e IIS

Installare ambienti per lo sviluppo e la produzione di applicazioni...

Altre guide

Newsletter @PHP

Ogni lunedì, direttamente nella tua e-mail: script, articoli, guide e tutorial su PHP, MySQL e Apache.

Iscriviti alla newsletter

Altre newsletter

Corsi in aula

Corso PHP per Webmaster

11 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

25 Giugno 2012 a Milano
Disponibilità: 7 Posti

Corso Google AdWords Base

05 Giugno 2012 a Roma
Disponibilità: 7 Posti