Introdução aos modificadores de acesso em PHP

O modificador de acesso é uma maneira pela qual podemos definir o escopo e os direitos de acessibilidade para a variável de qualquer outro identificador no PHP. O PHP suporta várias palavras-chave para fazer qualquer variável acessar qualquer variável e os identificadores. Podemos atribuir essas palavras-chave à classe, função ou identificadores. Essas palavras-chave - pública, privada, protegida, abstrata, final etc.

Quando usar modificadores de acesso em PHP?

O PHP tem algumas limitações em seu modificador de acesso, diferente do Java. Não podemos usar todo o modificador de acesso PHP no nível da classe, no nível da função e no nível do identificador. Podemos usar esses modificadores de acesso conforme nossa necessidade comercial de conceder ou revogar a permissão durante todo o programa ou aplicativo.

Aqui estão os modificadores da lista e se é aplicável ou não:

Modificador de acessoNível de classeNível de FunçãoNível Variável
públicoN / DSIMSIM
privadoN / DSIMSIM
protegidoN / DSIMSIM
abstratoSIMSIMN / D
finalSIMSIMN / D
EstáticoN / DSIMSIM

Na história acima, NA denota o Não Aplicável. Isso significa que não podemos usar o público, o privado e o protegido no nível de classe. Podemos usar o resumo e a final apenas no nível da classe.

Vários modificadores de acesso em PHP

Aqui estão os seguintes modificadores de acesso no PHP mencionados abaixo

1. Modificador de acesso público

O público é o modificador padrão como JAVA no PHP. Isso significa que, se não usarmos nenhum modificador com as funções dos identificadores por padrão, ele será considerado um modificador de acesso público. Este é um dos mais utilizados. No momento em que chegamos à reutilização do código da função, geralmente seguimos com o modificador de acesso público. Como o público pode ser usado de qualquer lugar, dentro da classe, com certeza, fora da classe, na classe estendida, e se esse público reutilizável não estiver vinculado a nenhuma classe, podemos usá-lo em qualquer lugar que incluirmos o arquivo. Como mencionado na tabela acima, não podemos usar esse modificador público com a classe, além de privado e protegido.

Agora, é hora de ver o exemplo do modificador de acesso público:

<_?php
class MyAccess (
var $var = "This is first var";
// print var variable value
function returnVar() (
echo $this->var;
)
)
$obj1 = new MyAccess();$obj1->returnVar();
?>

No código acima , a função returnVar () foi definida sem nenhum modificador de acesso, portanto, isso funcionará como público, pois é o modificador padrão na linguagem PHP.

public, private e protected não serão aplicáveis ​​no nível da classe, vamos ver com um exemplo.

<_?php
class public MyAccess (
var $var = "This is first var";
function returnVar() (
echo $this->var;
)
)
$obj1 = new MyAccess();
$obj1->returnVar();
?>

O código acima dará um erro como mencionado abaixo:

(!) Erro de análise: erro de sintaxe, inesperado 'público' (T_PUBLIC), identificador de espera (T_STRING) em E: \ wamp \ www \ twit \ index.php na linha 2

Isso permanece o mesmo para particulares e protegidos também.

<_?php
class private MyAccess (
var $var = "This is first var";
)
?>
class protected MyAccess (
var $var = "This is first var";
)
?>
<_?php
class private MyAccess (
var $var = "This is first var";
)
?>
class protected MyAccess (
var $var = "This is first var";
)
?>

2. Modificador de acesso privado

Esse modificador nos usa a palavra-chave privada para processar com ele. Não podemos usar o modificador privado com a classe Podemos usar isso apenas com as variáveis ​​de classe e métodos de classe (como mencionamos na tabela acima). Quando declaramos e usamos o privado, ele não pode ser acessado usando o objeto da classe. Só pode ser usado dentro da classe.

Por exemplo

<_?php
class MyAccess (
var $var = "This is first var";
private $fist_name;
// simple class method
function returnVar() (
echo $this->fist_name;
)
function set_fist_name($set_this)(
$this->fist_name = $set_this;
)
)
$obj1 = new MyAccess();
echo $obj1->fist_name; // will give the error
$obj1->set_fist_name("Jai Shre");
$obj1->returnVar();
?>
echo $obj1->fist_name; // will give the error

Essa linha de código pode ser usada, pois isso apresentará o erro. Isso é algo que não podemos acessar a variável privada usando o objeto dessa classe. Mas podemos usar isso usando sua configuração e o método getter, como estamos usando no código acima. $ obj1-> set_fist_name ("Jai Shre"); a linha de código definirá o valor na variável e usando $ obj1-> returnVar (); podemos obter o valor da variável definida.

3. Modificador de acesso protegido

Assim como público e privado, o próprio protegido não é compatível com o nível de classe. Como um modificador privado, protected também restringe o acesso das variáveis ​​da classe ou da função de fora da classe. Pode ser usado dentro da mesma classe e da subclasse (classe filho).

Por exemplo

<_?php
class MyAccess (
var $var = "This is first var";
protected $fist_name;
// simple class method
function returnVar() (
echo $this->fist_name;
)
function set_fist_name($set_this)(
$this->fist_name = $set_this;
)
)
class child extends MyAccess (
function setVal($set_this)(
$this->fist_name = $set_this;
)
function getVal()(
echo $this->fist_name;
)
)
$obj1 = new child();
//echo $obj1->fist_name; // will give the error
$obj1->setVal("Jai Shre");
$obj1->getVal();
?>

echo $ obj1-> fist_name; a linha de código dará o erro abaixo

Resultado:

Erro fatal: não é possível acessar a propriedade protegida MyAccess :: $ fist_name em E: \ wamp \ www \ twit \ index.php na linha 20

4. Modificador de acesso abstrato

Pode ser usado na classe e na função, não na variável da classe. Se alguma classe tiver pelo menos uma função abstrata, ela deverá ser declarada como abstrata. Não podemos instanciar a classe abstrata. Uma classe abstrata é considerada principalmente como uma classe incompleta.

5. Modificador final de acesso

Se alguma classe é declarada como final, não podemos estender essa classe. O PHP impede que a classe final seja herdada.

6. Modificador de acesso estático

A palavra-chave estática pode ser usada para tornar qualquer função estática. Ele habilita a capacidade dessa função para que se possa usar na criação de um objeto daquela classe em que foi declarada. Exemplo de método estático -

public static function static Function()
(
// declaration goes here..
)

Conclusão

Sempre devemos usar o modificador de acesso conforme os requisitos de negócios. Usando private e protected, podemos restringir o uso direto de variáveis ​​privadas e métodos privados de fora da classe declarada.

Artigos recomendados

Este é um guia para Modificadores de Acesso em PHP. Aqui discutimos os vários modificadores de acesso no PHP com os exemplos e saídas. Você também pode consultar o seguinte artigo para saber mais -

  1. Classe abstrata em PHP
  2. Padrões em PHP
  3. Instrução PHP Switch
  4. Variáveis ​​em PHP
  5. C Palavras-chave
  6. Palavras-chave C #
  7. Método estático em PHP
  8. Palavra-chave estática em C
  9. Alternar instrução em c #
  10. Guia completo da classe abstrata em C #
  11. Guia completo para o método estático JavaScript