Qual è la differenza tra pubblico, privato e protetto in PHP

Qual E La Differenza Tra Pubblico Privato E Protetto In Php



PHP è ampiamente utilizzato per lo sviluppo di siti web dinamici e applicazioni web. PHP fornisce parole chiave note come modificatori di accesso . Le proprietà del modificatore di accesso vengono utilizzate per accedere alla variabile, alla classe o alle proprietà della classe in tre modi diversi, ad esempio pubblico , privato, E protetto . In questo articolo, discuteremo di questi modificatori di accesso e determineremo la differenza tra questi tre modificatori di accesso nel linguaggio di programmazione PHP.

Cosa sono i modificatori di accesso in PHP?

In PHP i modificatori di accesso sono essenziali perché danno agli utenti la possibilità di regolare la visibilità così come l'accessibilità degli attributi e dei metodi delle classi. Di conseguenza, fornisce l'incapsulamento e la sicurezza dei dati e, quindi, i membri della classe sono protetti da accessi o alterazioni non autorizzati. Inoltre, semplifica la manutenzione del codice e il debug.







Tipi di modificatori di accesso

I tre modificatori di accesso che esistono in PHP sono discussi di seguito:



  • Pubblico: È possibile accedere a un metodo pubblico dall'esterno della classe. Ciò implica che qualsiasi codice può accedere, modificare e richiamare un metodo pubblico.
  • Privato: L'accesso al metodo privato è limitato alla classe stessa. Ciò implica che a nessuno degli altri codici, anche se si tratta di una classe figlia, è consentito accedere a un metodo privato o leggere il valore privato.
  • Protetto: Un metodo protetto è accessibile solo all'interno di una classe e delle classi ad essa correlate; non può essere utilizzato al di fuori di tali classi. Qualsiasi codice sorgente che deve accedere all'istanza della classe può leggere o alterare i dati di una proprietà protetta o richiamare una funzione protetta.

Differenza tra modificatori di accesso pubblico, privato e protetto in PHP

Proprietà Pubblico Privato Protetto
Accessibilità Questi modificatori di accesso possono essere accessibili ovunque, ad esempio all'interno e all'esterno del codice. Gli specificatori di accesso privato sono accessibili solo all'interno della classe. Potrebbe essere accessibile all'interno della classe e delle sue classi e metodi correlati (figli).
Flessibilità La massima flessibilità è offerta dalle risorse pubbliche in quanto sono accessibili da qualsiasi luogo. Poiché sono accessibili esclusivamente all'interno della classe, questi metodi offrono la minore flessibilità. Il metodo protetto offre una flessibilità moderata in quanto le classi figlie possono accedere a questi metodi.
Incapsulamento Altro codice può accedere o incapsulare metodi pubblici, ma il programmatore ha il controllo su questo. Un metodo privato è incapsulato all'interno della classe, rendendo impossibile l'accesso o l'aggiornamento da parte di codice esterno. Il suo processo di incapsulamento è lo stesso del metodo pubblico in PHP.
Sicurezza I metodi pubblici sono accessibili da qualsiasi luogo. Pertanto, forniscono un basso livello di sicurezza nel codice. Il massimo livello di sicurezza è fornito dai modificatori di accesso privato perché sono totalmente contenuti all'interno della classe. Dal momento che possono accedervi solo i membri della classe e delle sue sottoclassi, i modificatori di accesso protetto offrono un ragionevole livello di sicurezza.

Vediamo la differenza tra questi specificatori di accesso utilizzando un semplice esempio di programma in PHP.



Esempio: programma PHP con modificatori di accesso privato, pubblico e protetto





L'esempio seguente mostra la differenza tra pubblico, privato e protetto in un codice di esempio:

< ?php
classe MiaClasse {
pubblico $ pubblico = 'Pubblico-variabile. \N ' ; // È possibile accedervi da qualsiasi luogo
privato $ privato = 'Variabile privata. \N ' ; // È possibile accedervi solo dall'interno della classe
protetto $protetto = 'Variabile protetta'. ; // È possibile accedervi all'interno della classe e di eventuali sottoclassi

pubblico funzione getPrivate ( ) {
ritorno $questo - > privato;
}

pubblico funzione getProtected ( ) {
ritorno $questo - > protetto;
}
}
$oggetto = nuova MiaClasse ( ) ;

eco $oggetto - > pubblico;
eco $oggetto - > getPrivate ( ) ;
eco $oggetto - > getProtected ( ) ;
? >



Nel programma precedente, abbiamo definito una classe come La mia classe con una proprietà pubblica come $ pubblico che potrebbe accedere ovunque nel codice, una proprietà privata come $ privato e una proprietà protetta chiamata $protetto , quindi non possiamo accedere a specificatori privati ​​e protetti direttamente dall'esterno della classe. Come abbiamo usato due metodi pubblici chiamati getPrivate() E getProtected() che restituiscono rispettivamente i valori delle variabili delle proprietà private e protected e l'output è riportato di seguito:

Conclusione

PHP offre molte funzionalità e una di queste sono le parole chiave chiamate modificatori di accesso. Questi modificatori di accesso forniscono diversi modelli di accesso ai dati delle classi nel programma PHP. Nel tutorial sopra, abbiamo visto la differenza tra i modificatori di accesso in termini di accessibilità, incapsulamento, flessibilità e sicurezza offerti in PHP.