# PHP class: Por que classes são essenciais na programação orientada a objetos

Classes em PHP (*PHP classes*) estruturam códigos ao configurar **modelos lógicos e independentes**, e atribuir propriedades e métodos específicos a cada um deles. Assim, classes possibilitam a reutilização de trechos de códigos, o que torna a gestão de aplicações bem mais fácil e flexível.

## O que é PHP class?

PHP class, ou classe em PHP, é um tipo de estrutura (modelo) que define características e comportamentos de um objeto a ser criado. Elas definem, portanto, as **propriedades (variáveis ou atributos) e os métodos (funções)** de um objeto. Em PHP, classes são parte essencial da programação orientada a objetos (OOP). Use-as, por exemplo, combinadas a [funções PHP](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/function-php/) ou crie classes para [recuperar informações de um banco de dados MySQL/MariaDB com PHP](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/obter-dados-de-um-banco-de-dados-com-php-mysqli-query/ "PHP para recuperar informações de um banco de dados MySQL/MariaDB").

Dica O [Deploy Now](https://www.ionos.com/hosting/deploy-now "Deploy Now — IONOS") da IONOS é uma solução de hospedagem para aplicações de última geração. Beneficie-se de altos níveis de confiabilidade, e de amplos e variados recursos de automação, que darão o máximo de suporte aos seus projetos.

## Como definir uma classe em PHP

Para definir uma classe em PHP, comece escrevendo a palavra-chave ***class***, que deve ser seguida do respectivo nome e de colchetes. Adicione, dentro dos colchetes, as propriedades e os métodos da classe, como mostra o código abaixo:

```php
class Name { 
    // php class example properties and methods 
}
```

Observe, agora, um exemplo concreto:

```php
class Animal { 
  // Properties 
  public $name; 
  public $color; 
 
  // Methods 
  function set_name($name) { 
    $this->name = $name; 
  } 
  function get_name() { 
    return $this->name; 
  } 
}
```

Acima, a classe “Animal” tem duas propriedades: “name” e “color”. Da mesma forma, ela possui dois métodos: “set\_name” para definir o nome e “get\_name” para recuperar o nome.

Dica Quer aprender mais sobre programação em PHP? Então consulte o [tutorial PHP para iniciantes](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/criar-sites/aprenda-php-nosso-tutorial-abrangente-sobre-php-para-iniciantes/ "Os primeiros passos com PHP: Um tutorial para iniciantes") do nosso Digital Guide. Entenda, também, como linguagens de programação se diferem acompanhando as nossas comparações PHP vs. Python e PHP vs. JavaScript.

## Diferença entre objeto e classe em PHP

Um objeto é uma instância de uma classe, fazendo parte dela. Quando você cria uma instância de classe, você obtém um objeto específico, capaz de usar as propriedades e os métodos definidos para a classe. Crie um objeto para uma classe por meio da palavra-chave ***new***.

```php
class Animal { 
  // Properties 
  public $name; 
  public $color; 
 
  // Methods 
  function set_name($name) { 
    $this->name = $name; 
  } 
  function get_name() { 
    return $this->name; 
  } 
} 
 
$dog = new Animal(); 
$cat = new Animal(); 
$dog->set_name('Tom'); 
$cat->set_name('Mickey'); 
 
echo $dog->get_name(); 
echo "<br>"; 
echo $cat->get_name();
```

No exemplo, “dog” e “cat” são instâncias da classe “Animal”. À cada instância, atribuímos um nome.

Em PHP, classes também podem ser herdadas. Isso quer dizer que você pode **derivar uma classe existente** para a definição de uma nova classe. A classe derivada herdará as propriedades e os métodos da classe original, que pode ser abstrata (*PHP abstract class*). Faça isso para reutilizar e estender funções. Objetos de classes derivadas também constituem instâncias da classe original, podendo, então, utilizar os mesmos métodos. O exemplo esclarece:

```php
class Mammal extends Animal { 
function breathesAir() { 
      echo "inhale"; 
    } 
} 
 
$horse = new Mammal; 
$horse->setName("Louis");
```

Observe que com a palavra-chave ***extends***, a classe “Mammal” herda todas as propriedades e métodos da superclasse “Animal”. Também é possível adicionar uma nova função à classe “Mammal”, assim como acessar as funções herdadas.

## PHP class: Exemplos de uso

Classes em PHP são extremamente versáveis, como mostrarão os exemplos práticos a seguir.

### PHP instanceof

Em PHP, ***instanceof*** é o operador usado para verificar se um objeto pertence a uma classe original ou a uma classe derivada, como exemplifica o código abaixo:

```php
class Animal { 
    public function speak() { 
        echo "sound"; 
    } 
} 
 
class Dog extends Animal { 
    public function speak() { 
        echo "bark"; 
    } 
} 
 
$animal = new Dog(); 
 
if ($animal instanceof Animal) { 
    $animal->speak(); // Output: "bark" 
}
```

Primeiramente, fizemos uso de **instanceof** para verificar se *$animal* é uma instância da classe “Animal” ou de uma de suas classes derivadas. Descobrimos, então, que *$animal* é uma instância da classe derivada “Dog” (herdada de “Animal”). Assim, a condição é atendida e o código do bloco “if” é executado.

O operador *instanceof* pode ser útil em situações nas quais é preciso garantir acessos a **determinados métodos ou propriedades**, ao mesmo tempo em que se tenta evitar a ocorrência de erros, caso o objeto não possua a classe esperada.

### Arrays e classes em PHP

Classes podem ser armazenadas em [*arrays* PHP](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/php-class/) para o desenvolvimento de **estruturas de dados complexas**:

```php
class Product { 
    public $name; 
    public $price; 
 
    public function __construct($name, $price) { 
        $this->name = $name; 
        $this->price = $price; 
    } 
} 
 
$products = [ 
    new Product("Laptop", 800), 
    new Product("Smartphone", 400), 
    new Product("Tablet", 300) 
]; 
 
foreach ($products as $product) { 
    echo "Product: " . $product->name . ", Price: $" . $product->price . "<br>"; 
}
```

No código acima, definimos a classe “Product”, para que esta represente diferentes produtos, e armazenamo-la no array “products”. Assim, podemos percorrer o array com [*loops* PHP](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/php-loop/), como o **foreach construct**, para configurarmos a apresentação de nomes de produtos com os respectivos preços.

### PHP class constructor

*Constructor* é um método especial dentro de uma classe, que é automaticamente chamado no momento da criação de um objeto. A finalidade do *PHP class constructor* é inicializar os primeiros estados de um objeto ou desempenhar as atividades preparatórias necessárias para que o objeto funcione corretamente. Entenda:

```php
class Dog { 
    private $name; 
    private $color; 
 
    // Constructor 
    public function __construct($name, $color) { 
        $this->name = $name; 
        $this->color = $color; 
    } 
 
    public function sayHello() { 
        return "Hello, my name is {$this->name} and my color is {$this->color}."; 
    } 
} 
 
$dog = new Dog("Tom", "brown"); 
 
echo $dog->sayHello(); // Output: "Hello, my name is Tom and my color is brown."
```


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/php-class/](https://www.ionos.com/pt-br/digitalguide/sites-de-internet/desenvolvimento-web/php-class/) for AI/LLM consumption.