Construtor PHP

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 BankAccountclasse. O construtor inicializa as propriedades $accountNumbere $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 BankAccountobjeto:

$account = new BankAccount(1, 100);Linguagem de código:  PHP  ( php )

Neste exemplo, o PHP chama automaticamente o __construct()da BankAccountclasse. Conseqüentemente, ele atribui $accountNumbere $balance argumentsàs propriedades $accountNumbere $balancedo 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 $typeargumento 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *