Resumo : neste tutorial você aprenderá como usar o construtor PHP para inicializar as propriedades de um objeto.
Introdução ao construtor PHP
PHP permite que você declare um método construtor para uma classe com o __construct()
seguinte nome:
<?php
class ClassName
{
function __construct()
{
// implementation
}
}
Linguagem de código: HTML, XML ( xml )
Quando você cria uma instância da classe, o PHP chama automaticamente o método construtor:
$object = new ClassName()
Linguagem de código: PHP ( php )
Normalmente, você usa o construtor para inicializar as propriedades do objeto.
O exemplo a seguir define um construtor para a BankAccount
classe. O construtor inicializa as propriedades $accountNumber
e $balance
:
<?php
class BankAccount
{
private $accountNumber;
private $balance;
public function __construct($accountNumber, $balance)
{
$this->accountNumber = $accountNumber;
$this->balance = balance;
}
}
Linguagem de código: HTML, XML ( xml )
Como o construtor possui dois parâmetros, você precisa passar os argumentos correspondentes ao criar um BankAccount
objeto:
$account = new BankAccount(1, 100);
Linguagem de código: PHP ( php )
Neste exemplo, o PHP chama automaticamente o __construct()
da BankAccount
classe. Conseqüentemente, ele atribui $accountNumber
e $balance arguments
às propriedades $accountNumber
e $balance
do objeto.
Promoção do construtor PHP
Na prática, muitas vezes é necessário atribuir os argumentos do construtor às propriedades correspondentes. É meio redundante.
Para melhorar isso, o PHP 8.0 introduziu o novo conceito chamado promoção de construtor que promove os argumentos do construtor para propriedades.
Por exemplo, em vez de escrever isto:
<?php
class BankAccount
{
private $accountNumber;
private $balance;
function __construct($accountNumber, $balance)
{
$this->accountNumber = $accountNumber;
$this->balance = balance;
}
}
Linguagem de código: HTML, XML ( xml )
você pode usar isso:
<?php
class BankAccount
{
function __construct( private $accountNumber, private $balance)
{
}
}
Linguagem de código: HTML, XML ( xml )
Quando um parâmetro do construtor inclui um modificador de acesso ( public
, private
, ou protected
), o PHP o tratará como um argumento do construtor e como uma propriedade do objeto. E atribui o argumento do construtor à propriedade.
Às vezes, você não deseja promover argumentos do construtor, pode remover o modificador de acesso. Por exemplo:
<?php
class BankAccount
{
function __construct(private $accountNumber, private $balance, $type)
{
}
}
Linguagem de código: HTML, XML ( xml )
Neste exemplo, o $type
argumento não inclui o modificador de acesso. Portanto, é um parâmetro regular e não será promovido a propriedade.
Observe que a ordem dos argumentos promovidos e dos argumentos não promovidos pode aparecer no construtor em qualquer ordem.
Resumo
- O construtor PHP é um método especial chamado automaticamente quando um objeto é criado.
- Use a promoção do construtor tanto quanto possível para tornar o código mais curto.