PHP $isto

Resumo : neste tutorial, você aprenderá sobre $thisa palavra-chave PHP e como usá-la $thisdentro 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 $thispalavra-chave está disponível apenas dentro de uma classe. Não existe fora da classe. Se você tentar usar $thisfora de uma classe, receberá um erro.

Ao acessar uma propriedade de objeto usando a $thispalavra-chave, você usa the apenas $com a thispalavra-chave. E você não usa the $com o nome da propriedade. Por exemplo:

$this->balanceLinguagem de código:  PHP  ( php )

O seguinte mostra a BankAccountclasse:

<?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 balancepropriedade por meio da $thispalavra-chave dentro dos métodos deposit()e withdraw().

Métodos de encadeamento

Primeiro, crie um novo BankAccountobjeto:

// 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 BankAccountobjeto, que está $thisdentro da BankAccountclasse 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 $thisqual é o objeto atual da BankAccountclasse. Portanto, você pode chamar qualquer método público da BankAccountclasse.

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 $thisfaz referência ao objeto atual da classe. Está disponível apenas dentro da classe.
  • Use o encadeamento de métodos retornando $thisde um método para tornar o código mais conciso.

Deixe um comentário

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