Introdução ao Construtor em PHP

O construtor é o conceito PHP5 OOP (Programação Orientada a Objetos). O construtor está associado às classes que declaramos no programa. O construtor é chamado automaticamente quando o objeto da classe é instanciado; portanto, a definição de construtor é assim: "Um construtor é um método especial chamado automaticamente quando o objeto da classe é instanciado". Neste tópico, vamos aprender sobre construtores em PHP.

Sintaxe

<_?php
Class Classname (
//constructor
function __construct() (
//statements
)
)
?>

No trecho de código acima, o construtor começa com um sublinhado duplo __ seguido pela construção da palavra-chave. Um construtor sem __construct () ou caso o nome da classe seja alterado, o método definido é apenas um método e não um construtor. Portanto, é importante definir o construtor em uma classe conforme a sintaxe definida.

Tipos de Construtor

Aqui estão alguns dos tipos de construtor com sua saída fornecida abaixo

1) Construtor pré-definido

Para esclarecer sobre o Construtor predefinido, vejamos um exemplo dado abaixo

Exemplo de construtor predefinido

<_?php
class Person (
function CanSpeak() (
echo " Not a constructor method " . '
';
)
function __construct() (
echo " In the constructor method " . '
';
)
)
//Object of class calling the constructor internally
$p = new Person();
// Object of class calling the normal method
$p->CanSpeak();
?>

Resultado:

No exemplo acima

Temos uma classe Person, que possui dois métodos, onde uma pessoa CanSpeak () Method e o método construtor __construct (). Em seguida, instanciamos a classe como um objeto $ p. Usando o $ p chamamos o método normal. Assim que o objeto é criado, o método construtor é chamado e a instrução dentro do método é executada. Da mesma forma, o método CanSpeak (), que é um método normal e não um método construtor, é chamado usando o mesmo objeto $ p e a instrução inside esse método é executado. Além disso, como o construtor definido acima não possui argumentos, o chamaremos de construtor de argumento zero ou construtor predefinido.

2) Construtor parametrizado

Um construtor pode estar com ou sem argumentos. O construtor com argumentos é chamado de construtor parametrizado e o construtor sem argumentos é chamado de construtor de argumento zero. Vamos ver um exemplo.

Exemplo de construtor parametrizado

class Person (
private $first;
private $email;
private $mobile;
public function __construct($name, $email, $mobile) (
echo "Initialising the object…
";
$this->name = $name;
$this->email = $email;
$this->mobile = $mobile;
)
public function showProfile() (
echo "My name is: " . $this->name. " " . $this->email. " " . $this->mobile;
)
)
$john = new Person("John", " ", "9187986786");
$john->showProfile();

Resultado:

Como o Construtor funciona?

Vamos dar uma olhada no construtor da classe base e na classe derivada que estende a classe base usando a palavra-chave extends que possui seu próprio construtor para executar e o construtor pai para executar também. Até agora, aprendemos apenas sobre o construtor declarado em uma classe. Vamos adicionar um pouco mais de conhecimento ao construtor aqui. Com o exemplo a seguir, a classe base Person possui um construtor, agora esse construtor é chamado pela classe derivada ou pela subclasse usando a palavra-chave pai e, portanto, pode acessar o construtor da pessoa da classe base.

O fluxo de saída -

Primeiro, o construtor Person é chamado, então o construtor Customer é chamado, que internamente chama novamente o construtor Person e, em seguida, seu próprio construtor customer e por último a classe Employee que estende a classe Person, assim o construtor Person é chamado novamente.

Código

class Person (
function __construct() (
echo "In Person constructor"."
";
)
)
class Customer extends Person (
function __construct() (
parent::__construct();
echo "In Customer constructor"."
";
)
)
class Employee extends Person (
// inherits Person's constructor
)
// In Person constructor
$p = new Person();
// In Person constructor
// In Customer constructor
$c = new Customer();
// In Employee constructor
$e = new Employee();

Resultado:

No exemplo abaixo, mostramos como o método set e o método get funcionam. Usando o conceito de encapsulamento no OOP. Inicialmente, o programa é declarado com um construtor, um método set_name e um método get_name. Observe que o construtor é um construtor parametrizado que é definitivamente chamado quando a classe é instanciada e, portanto, a primeira saída é John Doe, em seguida, criou um objeto da classe e chamou os métodos set_name e get_name que imprimem a saída como Alice.

<_?php
class Person (
public $name;
function __construct($name) (
echo $this->name = $name;
)
function set_name($name) (
$this->name = $name;
)
function get_name() (
echo $this->name;
)
)
// In Person constructor
$p = new Person('John Doe');
echo "\n";
$p->set_name('Alice');
$p->get_name();
?>

Resultado:

O especificador de acesso

Existem três especificadores de acesso no PHP

  • Público
  • Protegido
  • Privado

Público: os membros da classe declarados como públicos estão acessíveis em qualquer lugar.

Protegido: os membros da classe declarada como protegida são acessíveis apenas dentro da classe base e da classe derivada que estende a classe base.

Privado: os membros da classe declarada como privada são acessíveis com a classe que a define.

Além disso, as variáveis ​​declaradas são chamadas de membros ou propriedades de dados e as funções declaradas são chamadas como métodos de dados. No exemplo abaixo, declaramos a Classe Base como Pessoa, que possui as seguintes propriedades, juntamente com o nome público dos especificadores de acesso, email protegido e celular particular. Agora a classe é instanciada com um objeto $ p e essas três propriedades que são acessadas a partir do objeto. quais saídas são um erro, por que, porque a propriedade protected diz que protected é acessível somente dentro da classe base e da classe derivada que estende a classe base?

<_?php
class Person (
public $name=;
protected $email;
private $mobile;
function __construct() (
print "In Person constructor";
)
)
// In Person constructor
$p = new Person();
echo $p->name;
echo $p->email;
echo $p->mobile;
?>

Resultado:

Conclusão

Espero que este artigo encontre o que você estava procurando. O artigo tem exemplos diferentes para você aprender. Quanto mais você colocar os exemplos em prática, mais fácil será entender.

Artigos recomendados

Este é um guia para o Constructor em PHP. Aqui discutimos os tipos de construtor e como funciona o construtor em PHP. Você também pode consultar o seguinte artigo para saber mais -

  1. O que é PHP?
  2. Funções de String PHP
  3. Coleções Python
  4. Layout em Java