Menu
Coddy logo textTech

Construtor (__construct)

Parte da seção Programação Orientada a Objetos do Journey de PHP da Coddy — lição 7 de 91.

O método __construct é um método especial que é executado automaticamente quando você cria um novo objeto. Ele inicializa as propriedades do objeto.

Aqui está um exemplo de uma classe com um construtor:

<?php
class Dog {
    public $name;
    public $breed;

    public function __construct($name, $breed) {
        $this->name = $name;
        $this->breed = $breed;
    }
}

O método __construct recebe parâmetros e os atribui a propriedades usando $this.

Crie objetos usando o construtor:

$rex = new Dog("Rex", "German Shepherd");
$buddy = new Dog("Buddy", "Golden Retriever");

Quando você chama new Dog("Rex", "German Shepherd"), o PHP chama automaticamente __construct e passa os argumentos.

Acesse as propriedades que foram definidas pelo construtor:

echo $rex->name . "\n";
echo $rex->breed . "\n";
echo $buddy->name . "\n";
echo $buddy->breed . "\n";

Saída:

Rex
German Shepherd
Buddy
Golden Retriever

Você também pode ter um construtor com valores de parâmetros padrão:

class Cat {
    public $name;
    public $age;

    public function __construct($name, $age = 1) {
        $this->name = $name;
        $this->age = $age;
    }
}

$fluffy = new Cat("Fluffy", 3);
$whiskers = new Cat("Whiskers");  // age defaults to 1

echo $fluffy->name . " is " . $fluffy->age . " years old\n";
echo $whiskers->name . " is " . $whiskers->age . " years old\n";

Saída:

Fluffy is 3 years old
Whiskers is 1 years old

Ponto Chave: O método __construct garante que cada objeto seja configurado corretamente com seus dados iniciais quando criado. Ele evita que você tenha que definir propriedades manualmente após a criação do objeto.

challenge icon

Desafio

Fácil

Você recebeu arquivos PHP (book.php e driver.php) para implementar um sistema de livros.

Sua tarefa é:

  • Complete a classe Book em book.php com um método __construct que inicializa as propriedades $title, $author e $pages
  • Em driver.php, importe e crie um objeto de livro para "Harry Potter" de "J.K. Rowling" com 400 páginas

Siga os comentários TODO em cada arquivo.

Folha de consulta

O método __construct é um método especial que é executado automaticamente quando você cria um novo objeto para inicializar suas propriedades.

Defina um construtor em uma classe:

<?php
class Dog {
    public $name;
    public $breed;

    public function __construct($name, $breed) {
        $this->name = $name;
        $this->breed = $breed;
    }
}

Crie objetos usando o construtor:

$rex = new Dog("Rex", "German Shepherd");
$buddy = new Dog("Buddy", "Golden Retriever");

Acesse propriedades definidas pelo construtor:

echo $rex->name;  // Rex
echo $rex->breed;  // German Shepherd

Construtores podem ter valores de parâmetros padrão:

class Cat {
    public $name;
    public $age;

    public function __construct($name, $age = 1) {
        $this->name = $name;
        $this->age = $age;
    }
}

$fluffy = new Cat("Fluffy", 3);
$whiskers = new Cat("Whiskers");  // age defaults to 1

Experimente você mesmo

<?php
require_once 'book.php';

// TODO: Crie um objeto Book com:
// title: "Harry Potter", author: "J.K. Rowling", pages: 400
$myBook = ?;

echo "'" . $myBook->title . "' by " . $myBook->author . ", " . $myBook->pages . " pages\n";
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos