Modificadores de acesso do PHP: entendendo seu propósito e implementação

O objetivo deste artigo é examinar os conceitos de modificadores de acesso do PHP e sua importância para a programação orientada a objetos.

Na programação orientada a objetos , os modificadores de acesso são usados ​​para controlar a visibilidade dos membros da classe (propriedades e métodos).

O modificador de acesso PHP em uma propriedade ou método de classe determina quais métodos e propriedades na classe são visíveis para o usuário.

Esta lição discutirá as diferenças entre propriedades e métodos públicos, protegidos e privados, bem como como eles são usados ​​em várias situações.

Os modificadores de acesso do PHP podem ser classificados em três tipos:

tipos Visão geral
público Uma propriedade ou método público pode ser acessado de qualquer lugar, dentro e fora da classe .
protegido Uma propriedade ou método protegido só pode ser acessado de dentro da classe e suas subclasses. Não pode ser acessado de fora da classe.
privado Uma propriedade ou método privado só pode ser acessado de dentro da classe. Ele não pode ser acessado de fora da classe ou de suas subclasses.

 



Modificadores de acesso do PHP

Os modificadores de acesso do PHP podem ser usados ​​em propriedades e métodos para controlar onde eles são acessíveis (ou não).

Aqui adicionamos três modificadores de acesso diferentes a cada uma das três propriedades no exemplo a seguir.

A propriedade name é public , portanto, se você defini-la, funcionará perfeitamente.

Você receberá um erro fatal se tentar fazer alterações na cor ou na propriedade de peso, porque não pode defini-las (já que as propriedades de idade e sexo são protegidas e privadas).

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
class Student
{
public $name;
protected $age;
private $gender;
}
$std1 = new Student();
$std1->name = 'Denis'; // OK $std1->age = 21; // ERROR
$std1->age = 21; // ERROR
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Este próximo exemplo demonstra como adicionar modificadores de acesso a dois métodos da mesma classe. Se você tentar acessar as funções setAge() ou setGender() neste caso, receberá um erro fatal (porque as duas funções são definidas como funções protegidas e privadas, mesmo que todas as propriedades sejam públicas):

Example: 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
class Student
{
public $name;
public $age;
public $gender;
function setName($name)
{
// a public function (default)
$this->name = $name;
}
protected function setAge($age)
{
// a protected function
$this->age = $age;
}
private function setGender($gender)
{
// a private function
$this->gender = $gender;
}
}
$std = new Student();
$std->setName('Alex'); // OK
$std->setAge(35); // ERROR $std->setAge(35); // ERROR
?>
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Exemplo de Explicação

O código acima é um exemplo de um conceito de programação orientada a objetos chamado encapsulamento. Ele define uma classe chamada “ Student ” com três propriedades, $name , $age e $gender , e três métodos, setName() , setAge() e setGender() , que são usados ​​para definir os valores das propriedades.

O método setName() é um método público, o que significa que pode ser acessado de qualquer lugar fora da classe e define o valor da propriedade $name.

O método setAge() é um método protegido, o que significa que só pode ser acessado de dentro da classe ou de suas subclasses. Ele define o valor da propriedade $age.

O método setGender() é um método privado, o que significa que só pode ser acessado de dentro da própria classe. Ele define o valor da propriedade $gender.

Quando um objeto da classe é criado usando a palavra-chave “ new ”, as propriedades são inicializadas automaticamente com valores nulos .

Em seguida, o método setName() é chamado no objeto, que define o valor da propriedade $name como “Alex”.

No entanto, quando o método setAge() é chamado no objeto, ele gera um erro porque é um método protegido e não pode ser acessado de fora da classe.

Em resumo, o encapsulamento é uma técnica que permite que os dados e métodos de uma classe sejam ocultados e acessados ​​apenas por meio de interfaces públicas . Com a visibilidade definida para os métodos, os desenvolvedores podem controlar o acesso às propriedades e evitar modificações indesejadas.


Objetivo dos modificadores de acesso do PHP

O objetivo principal dos modificadores de acesso do PHP é controlar a visibilidade e acessibilidade dos membros da classe. Isso garante que os membros da classe sejam acessíveis apenas nos locais apropriados, impedindo o acesso não autorizado ou a modificação das propriedades e métodos da classe.

Aqui estão algumas finalidades específicas de cada modificador de acesso:

Público

Os membros públicos podem ser acessados ​​de qualquer lugar, tornando-os adequados para propriedades e métodos que precisam ser acessados ​​de fora da classe. Por exemplo, um método getter que retorna o valor de uma propriedade privada pode se tornar público.

Privado

Os membros privados são acessíveis apenas de dentro da classe em que são definidos, tornando-os adequados para propriedades e métodos que não devem ser acessados ​​ou modificados de fora da classe. Por exemplo, uma propriedade privada que armazena uma senha ou outras informações confidenciais deve se tornar privada.

Protegido

Os membros protegidos são acessíveis apenas de dentro da classe em que são definidos e suas subclasses, tornando-os adequados para propriedades e métodos que devem ser acessados ​​ou modificados apenas pela classe e suas subclasses. Por exemplo, um método protegido que executa uma operação específica pode ser chamado pela classe e suas subclasses, mas não de fora.

Nós valorizamos o seu feedback.
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0
+1
0

Assine a nossa newsletter
Digite seu e-mail para receber um resumo semanal de nossos melhores posts. Saber mais!
ícone