Qual é a diferença entre público, privado e protegido em PHP

Qual E A Diferenca Entre Publico Privado E Protegido Em Php



O PHP é amplamente utilizado para desenvolver sites dinâmicos e aplicativos da web. O PHP fornece palavras-chave conhecidas como modificadores de acesso . As propriedades do modificador de acesso são usadas para acessar a variável, classe ou propriedades de classe de três maneiras diferentes, como público , privado, e protegido . Neste artigo, discutiremos esses modificadores de acesso e determinaremos a diferença entre esses três modificadores de acesso na linguagem de programação PHP.

O que são modificadores de acesso em PHP?

No PHP, os modificadores de acesso são essenciais porque dão aos usuários a capacidade de regular a visibilidade, bem como a acessibilidade dos atributos e métodos da classe. Como resultado, fornece encapsulamento e segurança de dados e, portanto, os membros da classe são protegidos contra acesso ou alteração não autorizados. Além disso, facilita a manutenção do código e a depuração.







Tipos de modificadores de acesso

Os três modificadores de acesso que existem no PHP são discutidos abaixo:



  • Público: Você pode acessar um método público de fora da classe. Isso implica que qualquer código pode acessar, alterar e invocar um método público.
  • Privado: Para acessar o método privado é restrito à própria classe. Isso implica que nenhum dos outros códigos, mesmo que seja uma classe filha, tem permissão para acessar um método privado ou ler o valor privado.
  • Protegido: Um método protegido é acessível apenas dentro de uma classe e classes relacionadas a ela; não pode ser usado fora dessas classes. Qualquer código-fonte que precise acessar a instância da classe pode ler ou alterar os dados de uma propriedade protegida ou invocar uma função protegida.

Diferença entre modificadores de acesso público, privado e protegido em PHP

Propriedade Público Privado Protegido
Acessibilidade Esses modificadores de acesso podem ser acessados ​​em qualquer lugar, como dentro e fora do código. Os especificadores de acesso privado são acessíveis apenas dentro da classe. Pode ser acessível dentro da classe e suas classes (filhos) e métodos relacionados.
Flexibilidade A maior flexibilidade é oferecida pelos recursos públicos, pois podem ser acessados ​​de qualquer lugar. Como são acessíveis exclusivamente dentro da classe, esses métodos oferecem o mínimo de flexibilidade. O método protegido fornece flexibilidade moderada, pois as classes filhas podem acessar esses métodos.
Encapsulamento Outro código pode acessar ou encapsular métodos públicos, mas o programador tem controle sobre isso. Um método privado é encapsulado dentro da classe, tornando impossível para o código externo acessá-los ou atualizá-los. Seu processo de encapsulamento é o mesmo do método público em PHP.
Segurança Métodos públicos são acessíveis de qualquer lugar. Portanto, eles fornecem um baixo nível de segurança no código. O nível máximo de segurança é fornecido pelos modificadores de acesso privado porque eles estão totalmente contidos na classe. Como eles só podem ser acessados ​​por membros da classe e suas subclasses, os modificadores de acesso protegido oferecem um nível razoável de segurança.

Vamos ver a diferença entre esses especificadores de acesso usando um exemplo de programa simples em PHP.



Exemplo: programa PHP com modificadores de acesso privado, público e protegido





O exemplo a seguir demonstra a diferença entre público, privado e protegido em um código de exemplo:

< ?php
classe MinhaClasse {
público $public = 'Público-variável. \n ' ; // Pode ser acessado de qualquer lugar
privado $privado = 'Variável privada. \n ' ; // Só pode ser acessado de dentro da classe
protegido $protegido = 'Variável protegida.' ; // Pode ser acessado dentro da classe e quaisquer subclasses

público função getPrivate ( ) {
retornar $este - > privado;
}

público função fique protegido ( ) {
retornar $este - > protegido;
}
}
$obj = nova MinhaClasse ( ) ;

eco $obj - > público;
eco $obj - > getPrivate ( ) ;
eco $obj - > fique protegido ( ) ;
? >



No programa acima, definimos uma classe como Minha classe com um bem público como $public que poderia acessar em qualquer lugar no código, uma propriedade privada como $privado , e uma propriedade protegida chamada $protegido , portanto, não podemos acessar especificadores privados e protegidos diretamente de fora da classe. Como usamos dois métodos públicos chamados getPrivate() e getProtected() que retornam os valores das variáveis ​​de propriedades privadas e protegidas, respectivamente, e a saída é fornecida abaixo:

Conclusão

O PHP oferece muitas funcionalidades e uma delas são as palavras-chave chamadas de modificadores de acesso. Esses modificadores de acesso fornecem diferentes padrões de acesso aos dados das classes no programa PHP. No tutorial acima, vimos a diferença entre os modificadores de acesso em termos de acessibilidade, encapsulamento, flexibilidade e segurança oferecidos pelo PHP.