Introducción a Constructor en PHP

El constructor es el concepto PHP5 OOP (Programación Orientada a Objetos). El constructor está asociado con las clases que declaramos en el programa. El constructor se llama automáticamente cuando se instancia el objeto de la clase, por lo que la definición de constructor es la siguiente: "Un constructor es un método especial que se llama automáticamente cuando se instancia el objeto de la clase". En este tema, vamos a aprender sobre constructores en PHP.

Sintaxis

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

En el fragmento de código anterior, el constructor comienza con un doble guión bajo __ seguido de la construcción de la palabra clave. Un constructor sin __construct () o en caso de que se cambie el nombre de la clase, entonces el método definido es solo un método y no un constructor. Por lo tanto, es importante definir el constructor en una clase según la sintaxis definida.

Tipos de constructor

Estos son algunos de los tipos de Constructor con su salida a continuación.

1) Constructor predefinido

Para aclarar sobre Constructor predefinido, veamos un ejemplo que se muestra a continuación

Ejemplo de constructor 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();
?>

Salida:

En el ejemplo anterior

Tenemos una clase Person, que tiene dos métodos, donde una persona CanSpeak () Method y el método constructor __construct (). A continuación, hemos instanciado la clase como un objeto $ p. Usando $ p hemos llamado el método normal. Tan pronto como se crea el objeto, se llama al método constructor y se ejecuta la instrucción dentro del método, de manera similar, se llama al método CanSpeak (), que es un método normal y no un método constructor, usando el mismo objeto $ py la instrucción dentro ese método se ejecuta. Además, dado que el constructor definido anteriormente no tiene ningún argumento, lo llamaremos un constructor de argumento cero o un constructor predefinido.

2) Constructor parametrizado

Un constructor puede ser con o sin argumentos. El constructor con argumentos se llama constructor parametrizado y el constructor sin argumentos se llama constructor de argumento cero. Veamos un ejemplo.

Ejemplo de constructor 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();

Salida:

¿Cómo funciona Constructor?

Echemos un vistazo al constructor de clase base y la clase derivada que extiende la clase base usando la palabra clave extend que tiene su propio constructor para ejecutar y el constructor principal para ejecutar también. Hasta ahora solo aprendimos sobre el constructor declarado en una clase. Agreguemos un poco más de conocimiento al constructor aquí. Con el siguiente ejemplo, la clase base Persona tiene un constructor, ahora la clase derivada o la Subclase llama a este constructor utilizando la palabra clave principal y, por lo tanto, puede acceder al constructor de la Clase Base Persona.

El flujo de salida -

Primero, se llama al constructor Persona, luego se llama al constructor Cliente que internamente llama nuevamente al constructor Persona y luego a su propio constructor cliente y, por último, a la clase Empleado que extiende la clase Persona, por lo que se llama nuevamente al constructor Persona.

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();

Salida:

En el siguiente ejemplo, hemos mostrado cómo funcionan el método set y el método get. Usando el concepto de encapsulación en OOP. Inicialmente, el programa se declara con un constructor, un método set_name y un método get_name. Tenga en cuenta que el constructor es un constructor parametrizado que definitivamente se llama cuando se instancia la clase y, por lo tanto, la primera salida es John Doe, luego creó un objeto de la clase y llamó a los métodos set_name y get_name que imprimen la salida 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();
?>

Salida:

El especificador de acceso

Hay tres especificadores de acceso en PHP

  • Público
  • Protegido
  • Privado

Público: los miembros de la clase declarados públicos son accesibles en todas partes.

Protegido: los miembros de la clase declarada como protegida solo son accesibles dentro de la clase base y la clase derivada que extiende la clase base.

Privado: los miembros de la clase declarada como privada son accesibles con la clase que lo define.

Además, las variables declaradas se denominan miembros de datos o propiedades y las funciones declaradas se denominan métodos de datos. En el ejemplo a continuación, tenemos la Clase Base declarada como Persona que tiene las siguientes propiedades junto con los especificadores de acceso nombre público, correo electrónico protegido y móvil privado. Ahora la clase se instancia con un objeto $ py estas tres propiedades a las que se accede desde el objeto. qué salidas son un error, ¿por qué porque la propiedad protegida dice que las protegidas son accesibles solo dentro de la clase base y la clase derivada que extiende la clase 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;
?>

Salida:

Conclusión

Espero que este artículo te encuentre lo que has estado buscando. El artículo tiene diferentes ejemplos para que aprendas. Cuanto más ponga en práctica los ejemplos, más fácil será comprenderlos.

Artículos recomendados

Esta es una guía de Constructor en PHP. Aquí hemos discutido los tipos de constructor y cómo funciona el constructor en PHP. También puede consultar el siguiente artículo para obtener más información:

  1. ¿Qué es PHP?
  2. Funciones de cadena PHP
  3. Colecciones Python
  4. Diseño en Java