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

Proprietà e metodi

Come specificare all'interno delle classi le proprietà e i metodi: le informazioni che caratterizzano la classe
Come specificare all'interno delle classi le proprietà e i metodi: le informazioni che caratterizzano la classe
Link copiato negli appunti

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.

Ti consigliamo anche