Gostou do nosso conteúdo? Te ajudou?
Nos ajude também! Faça um PIX, de qualquer valor:
programacao.progressiva@gmail.com

Propriedades SET e GET

Fazer download da apostila de PHP

Propriedades

Nunca é interessante deixar que nossos atributos e métodos fiquem 100% disponíveis e livres para qualquer um usar, acessar ou até mesmo alterar, isso pode ser uma falha e deixar brecha para hackers invadirem seus sistemas.

Então, para acessar e alterar alguns tipos de informações, usaremos alguns métodos especiais, chamados accessors ou mutators, cujo único objetivo é alterar ou acessar determinadas informações, mas sob o 'olhar' vigilante e sanguinário do vigia, digo, do objeto, para saber o que está acontecendo de fato ali.

As funções Get e Set

Set significa...setar, configurar, colocar...quando setamos uma variável, estamos impondo um valor nela.
O método setName($name) por exemplo, vai colocar o valor $name na variável $name do objeto.

Para não confundir as coisas, a variável do objeto é definida pro:
$this->name
E a variável que vem de fora por: $name

Então, um método setName() que seta um nome para a variável do objeto é:
public function setName($name) {
$this->name = $name;
}


Get significa pegar, acessar...usamos ela para ter controle, pegar alguma informação de uma variável de um objeto, por exemplo, a getName(), retorna o valor da variável $name de um objeto:
public function getName() {
return $this->name;
}


Note que mais uma vez usamos o $this que serve para se referir ao próprio objeto.

Classe Empregado

Então uma classe Empregado, onde pedimos o nome do usuário, setamos o nome dele e depois exibimos, ficaria:
<html>
 <head>
  <title>Apostila PHP Progressivo</title>
 </head>
 <body>

 <form action=ae method="get">
  Digite o nome do funcionario<input type="text" name="name" /><br />
  <input type="submit" name="submit" value="Testar" />
 </form> 

 <?php

  $nome = $_GET['name'];

 class Empregado {
  private $name;
  // Get
  public function getName() {
   return $this->name;
  }

  // Set

  public function setName($name) {
   $this->name = $name;
  }
 }
 
 $func = new Empregado();
 $func->setName($nome);
 echo "Funcionário: ".$func->getName();

?>

 </body>
</html>


Uso real de SET e GET

O uso mostrado de set e get, são apenas para enfatizar que você não deve deixar que acessem diretamente os dados de atributos.
O saldo bancário, por exemplo, é um atributo.

O método get para acessar esse atributo, só deve ocorrer depois do usuário fornecer a senha ou digital dele, provando ser ele o titular da conta, só então ele vai poder acessar o atributo, entende?

O mesmo jeito o método set.
Vamos supor que ele tenha mil na conta e queira setar um saque de 1200.
Não dá amigo.

Você precisa fazer uma verificação antes de permitir qualquer set. Pra depositar, ok, pode depositar o que for, agora pra sacar, tem regras, não é só sair sacando, a vida real não é assim? Pois é exatamente assim nos sistemas reais bancários, ok?

Relembre: use métodos para deixarem que acessem suas variáveis,seus sagrados atributos.