W3docs

Programação Orientada a Objetos em PHP: Entendendo Construtores

Aprenda o que são construtores em PHP, como funcionam, sua sintaxe e como inicializar propriedades de objetos com exemplos práticos.

O termo Programação Orientada a Objetos (OOP) tornou-se um conceito fundamental no desenvolvimento de software, e com razão. Ela fornece uma abordagem estruturada para construir aplicações complexas, escaláveis e de fácil manutenção. Um conceito fundamental em OOP é o construtor, que desempenha um papel crucial na criação de objetos e na inicialização de suas propriedades.

Em PHP, um construtor é um método especial chamado automaticamente quando um objeto é instanciado. Seu objetivo é inicializar as propriedades do objeto e definir seu estado inicial. Desde o PHP 5, o método construtor é chamado __construct() (o PHP 4 legado usava o nome da classe). Neste artigo, vamos examinar mais de perto a sintaxe e a funcionalidade dos construtores PHP.

A Sintaxe dos Construtores em PHP

A sintaxe para definir um construtor em PHP é simples. Você define um método chamado __construct() dentro da classe. Por exemplo:

Sintaxe de Construtores em PHP

class Car {
   public function __construct() {
      // constructor code goes here
   }
}

Note que em PHP, a visibilidade do construtor pode ser public, protected ou private, embora public seja a mais comum.

Um construtor não requer parâmetros, mas você pode incluí-los para passar valores ao objeto no momento da criação. Por exemplo:

Sintaxe de Construtores em PHP com parâmetros

class Car {
   public function __construct($make, $model) {
      $this->make = $make;
      $this->model = $model;
   }
}

Desde o PHP 8.0, você pode usar a promoção de propriedades no construtor para declarar e inicializar propriedades em uma única etapa:

Promoção de propriedades no construtor do PHP 8

class Car {
   public function __construct(
      public string $make,
      public string $model
   ) {}
}

Isso reduz o código repetitivo e é agora a prática padrão para classes de dados simples.

A Funcionalidade dos Construtores em PHP

A função principal de um construtor é inicializar as propriedades do objeto e definir seu estado. Quando um objeto é instanciado, o construtor é chamado automaticamente, executando qualquer código dentro dele. Por exemplo, você pode usar um construtor para atribuir valores às propriedades de um objeto:

Construtor PHP para definir o valor das propriedades de um objeto

class Car {
   public $make;
   public $model;

   public function __construct($make, $model) {
      $this->make = $make;
      $this->model = $model;
   }
}

Neste exemplo, o construtor recebe dois parâmetros, $make e $model, e define o valor das propriedades $make e $model de acordo.

Outro caso de uso comum para construtores é inicializar objetos com valores padrão. Por exemplo:

PHP inicializar objetos com valores padrão

class Car {
   public $make;
   public $model;

   public function __construct($make = "Unknown", $model = "Unknown") {
      $this->make = $make;
      $this->model = $model;
   }
}

$myCar = new Car("Toyota", "Camry");
echo $myCar->make; // Outputs: Toyota

Neste exemplo, o construtor possui valores padrão para $make e $model, portanto, se esses valores não forem fornecidos ao criar um objeto, os valores padrão serão usados.

Encadeamento de Construtores na Herança

Ao estender uma classe, muitas vezes é necessário chamar o construtor pai para garantir que a classe pai seja inicializada corretamente. Isso é feito usando parent::__construct():

Encadeamento de construtor pai em PHP

class ElectricCar extends Car {
   public function __construct($make, $model, public int $batteryCapacity) {
      parent::__construct($make, $model);
      // additional initialization for the child class
   }
}

Isso garante que tanto as classes filha quanto a pai mantenham seus estados iniciais corretos.

Conclusão

Os construtores são uma parte poderosa e essencial da Programação Orientada a Objetos em PHP. Eles permitem que os desenvolvedores inicializem objetos e definam seu estado no momento da criação, tornando mais fácil construir aplicações complexas, escaláveis e de fácil manutenção. Ao entender a sintaxe e a funcionalidade dos construtores, você pode elevar suas habilidades de desenvolvimento PHP a um novo nível e criar código mais eficiente e de alta qualidade.

Prática

Prática
O que é verdade sobre o construtor PHP de acordo com o artigo no W3docs?
O que é verdade sobre o construtor PHP de acordo com o artigo no W3docs?
Was this page helpful?