Introdução à POO em PHP

Agora vamos estudar POO em PHP. Vamos considerar um exemplo da vida real, e depois transferi-lo para PHP.

Como exemplo, vamos pegar um carro. Ele tem rodas, cor, tipo de carroceria, capacidade do motor e assim por diante. Além disso, o motorista pode dar comandos a ele: andar, parar, virar à direita, à esquerda, etc.

Podemos dizer que existe uma certa classe de carros, possuindo propriedades comuns (todos têm rodas e a todos podem ser dados comandos).

Um carro específico, estacionado na rua - é um representante desta classe, ou, em outras palavras, um objeto desta classe. Todos os objetos desta classe têm propriedades: número de rodas, cor, tipo de carroceria e métodos: andar, parar, virar à direita, à esquerda.

Em outras palavras, a própria classe é um projeto, um plano segundo o qual os carros são feitos na fábrica. O objeto é o próprio carro, feito de acordo com esses planos.

Em PHP, uma classe é criada usando a palavra-chave class, seguida pelo nome dessa classe. Vamos criar a classe Car:

php<?php
  class Car
  {
    // aqui o código, ou seja, o projeto PHP do carro
  }
?>

Vamos especificar agora em nosso projeto que qualquer carro criado a partir deste projeto terá uma propriedade para a cor e uma propriedade para a quantidade de combustível.

Para isso, dentro da classe, vamos escrever a propriedade $color e a propriedade $fuel:

php<?php
  class Car
  {
    // Vamos definir as propriedades (basicamente variáveis da classe):
    public $color; // cor do carro
    public $fuel; // quantidade de combustível
  }
?>

Agora vamos criar os métodos da nossa classe. Em PHP, os métodos, assim como funções comuns, são declarados usando a palavra-chave function, antes da qual é escrita a palavra-chave public.

Como mencionado acima, nosso carro pode andar, pode virar, pode parar. Vamos criar os métodos correspondentes em nossa classe:

php<?php
  class Car
  {
    public $color; // cor do carro
    public $fuel;  // quantidade de combustível
    
    // Comando para andar:
    public function go()
    {
      // algum código PHP
    }
    
    // Comando para virar:
    public function turn()
    {
      // algum código PHP
    }
    
    // Comando para parar:
    public function stop()
    {
      // algum código PHP
    }
  }
?>

Criamos o projeto do nosso carro. Agora precisamos ir para a fábrica e criar um objeto desta classe (ou seja, um carro concreto).

Em PHP, isso é feito usando a palavra-chave new, após a qual é escrito o nome da classe:

php<?php
  new Car;
?>

No entanto, se simplesmente criarmos um objeto da classe - isso não levará a nada (é o mesmo que, por exemplo, declarar um array e não atribuí-lo a lugar nenhum). Precisamos de uma variável para armazenar este objeto.

Deixe esta variável chamar-se $myCar - vamos armazenar nela o objeto que criámos:

php<?php
  $myCar = new Car;
?>

Após criar o carro, podemos aceder às suas propriedades. O acesso a elas ocorre através da seta ->. Vamos definir as propriedades do nosso objeto:

php<?php
  $myCar = new Car; // comandamos à fábrica para fazer um carro
  
  // Definimos as propriedades do objeto:
  $myCar->color = 'red'; // pintamos de vermelho
  $myCar->fuel = 50; // abastecemos com combustível
?>

Pronto, nosso carro foi criado, pintado e abastecido. Agora podemos dar-lhe comandos através dos métodos deste carro.

O acesso aos métodos também ocorre através da seta, mas, ao contrário da propriedade, após o nome do método devem ser escritos parênteses. Vamos dar comandos ao nosso objeto:

php<?php
  $myCar->go();
  $myCar->turn();
  $myCar->stop();
?>