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:
< ?phpclasse 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.