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

Indicatori di visibilità: public

Le proprietà e le funzioni dell'indicatore di visibilità "public"
Le proprietà e le funzioni dell'indicatore di visibilità "public"
Link copiato negli appunti

Come abbiamo imparato dalla precedente lezione, le classi possono condividere le proprie funzionalità (costanti, proprietà e metodi) con le classi eredi. Questo è possibile perché tutte le proprietà ed i metodi utilizzati nelle classi che abbiamo analizzato sono stati dichiarati con la keyword public. Ciò significa, che essi sono disponibili pubblicamente, ovvero in ogni parte dello script: all'interno della classe stessa, all'esterno ed all'interno delle classi che ereditano.

Ma questa flessibilità può essere troppo fuorviante ed in alcuni casi dannosa, senza contare che la sola keyword public non permette la realizzazione di parecchi Design Patterns. Per questo motivo, esistono altri due indicatori di visibilità: protected e private. Ecco le descrizioni di tutti gli indicatori che abbiamo a disposizione:

  • public: la proprietà o il metodo dichiarato come public è rispettivamente accessibile/ modificabile e richiamabile dall'interno della classe stessa, dall'esterno della classe e dall'interno delle classi che ereditano.
  • protected: la proprietà o il metodo dichiarato come protected è rispettivamente accessibile/modificabile e richiamabile dall'interno della classe stessa e dall'interno delle classi che ereditano, ma non è accessibile dall'esterno della classe
  • private: la proprietà o il metodo dichiarato come private è rispettivamente accessibile/ modificabile e richiamabile unicamente dall'interno della classe stessa

Vediamo ora degli esempi pratici che ci aiuteranno a capire le differenze che si ottengono dal comportamento di proprietà e metodi quando vengono dichiarati con uno specifico indicatore di visibilità.

Public

L'indicatore di visibilità public è il più semplice ed immediato dei tre. Dichiarando un elemento come public, si avrà il controllo completo sullo stesso in ogni situazione:

class MyClass {
        const A = 10;
        // proprietà
        public $a = 10;
        // metodi
        public function sayHello() {
                echo "Hello!";
        }
}
class AnotherClass extends MyClass {
        // proprietà
        public $b = 10;
}
$myClass = new MyClass();
// stampa (10)
echo $myClass->a;
// modifica
$myClass->a = 20;
// chiamata ("Hello!")
$myClass->sayHello();
$anotherClass = new AnotherClass();
// stampa (10)
$anotherClass->a;
// chiamata ("Hello!")
$anotherClass->sayHello();

Ricordiamo inoltre, che le costanti dichiarate all'interno di una classe sono sempre considerate pubbliche e quindi accessibili da qualsiasi posizione.

Ti consigliamo anche