- Learn
- Programmazione a oggetti con PHP, la guida
- Proprietà e metodi
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.
Se vuoi aggiornamenti su Proprietà e metodi inserisci la tua email nel box qui sotto:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
La tua iscrizione è andata a buon fine. Se vuoi ricevere informazioni personalizzate compila anche i seguenti campi opzionali:
Compilando il presente form acconsento a ricevere le informazioni relative ai servizi di cui alla presente pagina ai sensi dell'informativa sulla privacy.
I Video di HTML.it
Nokia X, le app si acquistano con il credito telefonico
Dopo l’annuncio dei nuovi smartphone entry level della serie Nokia X, Daniele Pagani ci illustra le novità più importanti per […]