Resumo : neste tutorial, você aprenderá sobre $this
a palavra-chave PHP e como usá-la $this
dentro de uma classe para referenciar o objeto atual.
O que é $this em PHP?
Em PHP, a palavra-chave faz referência ao objeto$this
atual da classe. A palavra-chave permite acessar as propriedades e métodos do objeto atual dentro da classe usando o operador de objeto ( ):$this
->
$this->property
$this->method()
Linguagem de código: PHP ( php )
A $this
palavra-chave está disponível apenas dentro de uma classe. Não existe fora da classe. Se você tentar usar $this
fora de uma classe, receberá um erro.
Ao acessar uma propriedade de objeto usando a $this
palavra-chave, você usa the apenas $
com a this
palavra-chave. E você não usa the $
com o nome da propriedade. Por exemplo:
$this->balance
Linguagem de código: PHP ( php )
O seguinte mostra a BankAccount
classe:
<?php
class BankAccount
{
public $accountNumber;
public $balance;
public function deposit($amount)
{
if ($amount > 0) {
$this->balance += $amount;
}
}
public function withdraw($amount)
{
if ($amount <= $this->balance) {
$this->balance -= $amount;
return true;
}
return false;
}
}
Linguagem de código: PHP ( php )
Neste exemplo, acessamos a balance
propriedade por meio da $this
palavra-chave dentro dos métodos deposit()
e withdraw()
.
Métodos de encadeamento
Primeiro, crie um novo BankAccount
objeto:
// create a new account object
$account = new BankAccount();
$account->accountNumber = 1;
$account->balance = 100;
Linguagem de código: PHP ( php )
Segundo, chame o deposit()
método três vezes para depositar diferentes quantias de dinheiro:
$account->deposit(100);
$account->deposit(200);
$account->deposit(300);
Linguagem de código: PHP ( php )
Este código é bastante detalhado. Seria mais conciso e expressivo se você pudesse escrever essas declarações usando uma única declaração como esta:
$account->deposit(100)
->deposit(200)
->deposit(300);
Linguagem de código: PHP ( php )
Essa técnica é chamada de encadeamento de métodos .
Para formar a cadeia, o deposit()
método precisa retornar um BankAccount
objeto, que está $this
dentro da BankAccount
classe assim:
<?php
class BankAccount
{
public $accountNumber;
public $balance;
public function deposit($amount)
{
if ($amount > 0) {
$this->balance += $amount;
}
return $this;
}
public function withdraw($amount)
{
if ($amount <= $this->balance) {
$this->balance -= $amount;
return true;
}
return false;
}
}
Linguagem de código: PHP ( php )
O deposit()
retorna $this
qual é o objeto atual da BankAccount
classe. Portanto, você pode chamar qualquer método público da BankAccount
classe.
O exemplo a seguir chama o deposit()
método primeiro e depois o withdraw()
método em uma única instrução:
$account->deposit(100)
->withdraw(150);
Linguagem de código: PHP ( php )
É equivalente ao seguinte:
$account->deposit(100);
$account->withdraw(150);
Linguagem de código: PHP ( php )
Resumo
- A palavra-chave PHP
$this
faz referência ao objeto atual da classe. Está disponível apenas dentro da classe. - Use o encadeamento de métodos retornando
$this
de um método para tornar o código mais conciso.