Como definir propriedades em uma classe PHP?
Na programação orientada a objetos (OOP) em PHP, as propriedades são variáveis pertencentes a uma classe. Elas armazenam informações sobre o objeto e podem ter diferentes níveis de acesso.
Criando Propriedades em uma Classe PHP
<?php
class Carro {
public $marca;
private $modelo;
protected $ano;
}
?>
Modificadores de Acesso
- public - Pode ser acessado de qualquer lugar.
- private - Pode ser acessado apenas dentro da própria classe.
- protected - Pode ser acessado dentro da classe e por classes filhas.
Exemplo de Uso das Propriedades
<?php
class Carro {
public $marca;
private $modelo;
protected $ano;
public function setModelo($modelo) {
$this->modelo = $modelo;
}
public function getModelo() {
return $this->modelo;
}
}
$meuCarro = new Carro();
$meuCarro->marca = "Toyota";
$meuCarro->setModelo("Corolla");
echo "Marca: " . $meuCarro->marca . "\n";
echo "Modelo: " . $meuCarro->getModelo();
?>
Explicação do Código
$marca
é pública, então pode ser acessada diretamente.$modelo
é privada, então usamos métodossetModelo()
egetModelo()
para manipulá-la.$ano
é protegida, então só pode ser acessada dentro da própria classe ou por classes que a herdam.
Por que utilizar modificadores de acesso nas propriedades de uma classe?
Definir propriedades corretamente é essencial para o encapsulamento na programação orientada a objetos. Utilizar modificadores de acesso garante que os dados do objeto sejam protegidos contra acessos indevidos e manipulações erradas.
Algumas aplicações:
- Criação de modelos de dados mais seguros
- Evitar manipulação indevida de atributos
- Controle sobre a visibilidade dos dados
- Implementação de regras de negócio encapsuladas
Dicas para quem está começando
- Prefira definir propriedades como private e criar métodos para acessá-las.
- Use
public
apenas para atributos que podem ser alterados livremente. - Utilize
protected
quando precisar compartilhar propriedades com classes filhas. - Nomeie propriedades de forma clara e descritiva para evitar confusões.
- Pratique criando diferentes classes e experimentando os modificadores de acesso.
Contribuições de Daniel Moreira