Objetos PHP

Resumo : neste tutorial você aprenderá sobre objetos PHP, como definir uma classe e como criar um objeto a partir de uma classe.

O que é um objeto

Se você observar o mundo ao seu redor, encontrará muitos exemplos de objetos tangíveis: lâmpadas, telefones, computadores e carros. Além disso, você pode encontrar objetos intangíveis, como contas bancárias e transações.

Todos esses objetos compartilham duas características principais comuns:

  • Estado
  • Comportamento

Por exemplo, uma conta bancária tem o estado que consiste em:

  • Número de conta
  • Equilíbrio

Uma conta bancária também possui os seguintes comportamentos:

  • Depósito
  • Retirar

Os objetos PHP são conceitualmente semelhantes aos objetos do mundo real porque consistem em estado e comportamento.

Um objeto mantém seu estado em variáveis ​​que são frequentemente chamadas de propriedades . Um objeto também expõe seu comportamento por meio de funções conhecidas como métodos .

O que é uma aula?

No mundo real, você pode encontrar muitos tipos de objetos iguais. Por exemplo, um banco tem muitas contas bancárias. Todos eles possuem números de contas e saldos.

Essas contas bancárias são criadas a partir do mesmo modelo. Em termos orientados a objetos, dizemos que uma conta bancária individual é uma instância de uma classe Conta Bancária.

Por definição, uma classe é o modelo de objetos. Por exemplo, na classe Conta Bancária, você pode criar muitos objetos de conta bancária.

O seguinte ilustra o relacionamento entre a BankAccountclasse e seus objetos. A partir da BankAccountclasse você pode criar muitos BankAccountobjetos. E cada objeto tem seu próprio número de conta e saldo.

Definir uma classe

Para definir uma classe, você especifica a classpalavra-chave seguida por um nome como este:

<?php

class ClassName
{
    //...
}Linguagem de código:  HTML, XML  ( xml )

Por exemplo, o seguinte define uma nova classe chamada BankAccount:

<?php

class BankAccount
{
}Linguagem de código:  HTML, XML  ( xml )

Por convenção, você deve seguir estas regras ao definir uma classe:

  • O nome de uma classe deve estar em maiúsculas, onde cada palavra é maiúscula. Por exemplo, BankAccount, Customer, Transactione DebitNote.
  • Se o nome de uma classe for um substantivo, ele deverá estar no singular.
  • Defina cada classe em um arquivo PHP separado.

Na BankAccountclasse, você pode criar um novo objeto de conta bancária usando a newpalavra-chave como esta:

<?php

class BankAccount
{
}

$account = new BankAccount();Linguagem de código:  HTML, XML  ( xml )

Nesta sintaxe, the $accounté uma variável que faz referência ao objeto criado pela BankAccountclasse. Os parênteses que seguem o BankAccountnome da classe são opcionais. Portanto, você pode criar um novo BankAccountobjeto como este:

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

O processo de criação de um novo objeto também é chamado de instanciação. Em outras palavras, você instancia um objeto de uma classe. Ou você cria um novo objeto a partir de uma classe.

A BankAccountclasse está vazia porque não possui nenhum estado e comportamento.

Adicionar propriedades a uma classe

Para adicionar propriedades à BankAccountclasse, você coloca variáveis ​​dentro dela. Por exemplo:

<?php

class BankAccount
{
    public $accountNumber;
    public $balance;
}Linguagem de código:  HTML, XML  ( xml )

A BankAccountclasse tem duas propriedades $accountNumbere $balance. Na frente de cada propriedade, você vê a publicpalavra-chave.

A publicpalavra-chave determina a visibilidade de uma propriedade . Neste caso, você pode acessar a propriedade de fora da classe.

Para acessar uma propriedade, você usa o operador de objeto ( ->) assim:

<?php

$object->property;Linguagem de código:  HTML, XML  ( xml )

O exemplo a seguir mostra como definir os valores das propriedades accountNumbere :balance

<?php

class BankAccount
{
    public $accountNumber;
    public $balance;
}

$account = new BankAccount();

$account->accountNumber = 1;
$account->balance = 100;Linguagem de código:  HTML, XML  ( xml )

Além da publicpalavra-chave, o PHP também possui palavras privateprotectedchave que você aprenderá no tutorial sobre modificadores de acesso .

Adicionar métodos a uma classe

O seguinte mostra a sintaxe para definir um método em uma classe:

<?php

class ClassName
{
	public function methodName(parameter_list)
	{
		// implementation
	}
}Linguagem de código:  HTML, XML  ( xml )

Assim como uma propriedade, um método também possui um dos três modificadores de visibilidade: public, privatee protected. Se você definir um método sem nenhum modificador de visibilidade, o padrão será public.

O exemplo a seguir define o deposit()método para a BankAccountclasse:

<?php

class BankAccount
{
	public $accountNumber;

	public $balance;

	public function deposit($amount)
	{
		if ($amount > 0) {
			$this->balance += $amount;
		}
	}
}Linguagem de código:  HTML, XML  ( xml )

O deposit()método aceita um argumento $amount. Verifica se $amounté maior que zero antes de adicioná-lo ao saldo.

Para chamar um método, você também usa o operador de objeto ( ->) da seguinte forma:

$object->method(arguments)Linguagem de código:  PHP  ( php )

A nova sintaxe no deposit()método é a $thisvariável. A $thisvariável é o objeto atual da BankAccountclasse.

Por exemplo, quando você cria um novo objeto $accounte chama o deposit()método, o $thisinterior do método é o $accountobjeto:

$account = new BankAccount();

$account->accountNumber = 1;
$account->balance = 100;

$account->deposit(100);Linguagem de código:  PHP  ( php )

Da mesma forma, você pode adicionar o withdraw()método à BankAccountclasse da seguinte maneira:

<?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:  HTML, XML  ( xml )

O withdraw()método verifica o saldo atual.

Se o saldo for menor que o valor do saque, o withdraw()método retornará false.

Posteriormente, você aprenderá como lançar uma exceção. Caso contrário, deduz do saldo o valor do saque e devolve true.

Resumo

  • Objetos têm estados e comportamentos.
  • Uma classe é um modelo para a criação de objetos.
  • As propriedades representam o estado do objeto e os métodos representam o comportamento do objeto. Propriedades e métodos têm visibilidade.
  • Use a newpalavra-chave para criar um objeto a partir de uma classe.
  • A $thisvariável faz referência ao objeto atual da classe.

Deixe um comentário

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