¿Cuáles son los métodos __construct() y __destruct() en un PHP?

El constructor es el concepto de programación orientada a objetos en PHP. Es un método que tiene el mismo nombre que el nombre de la clase. Se define dentro de la clase y se usa para llamar automáticamente cuando se crea el objeto.
PHP4 proporciona el método constructor mientras que PHP5 proporciona el método mágico __construct y __destruct. Este método se llama automáticamente cuando se crea o destruye un objeto. Esta función siempre comienza con dos guiones bajos.

Método __construct(): __construct es un método mágico público que se usa para crear e inicializar un objeto de clase. __construct asigna algunos valores de propiedad al crear el objeto. Este método se llama automáticamente cuando se crea un objeto.

Propiedades:

  • __construct es un método mágico público.
  •  __construct es un método que debe tener visibilidad pública
  •  El método __construct puede aceptar uno o más argumentos.
  •  El método __construct se usa para crear un objeto.
  •  El método __construct puede llamar al método de clase o funciones
  •  El método __construct también puede llamar a constructores de otras clases.

El constructor inicializará las propiedades de la clase en el momento de la creación del objeto. El método __construct() se llamará solo una vez cuando se cree el objeto de la clase.

Sintaxis:

$object_name= new class_name (argument value);

Ejemplo:

$subject=new computer(“English”);

Sintaxis:

function __construct() {
    // Initialize the object properties
}

Acercarse:

  • Constructor predeterminado:  de forma predeterminada, el método __construct() no tiene parámetros. Los valores pasados ​​al constructor predeterminado son predeterminados.
  • Constructor parametrizado: En el constructor parametrizado, el método __construct() toma uno o más parámetros. Puede proporcionar diferentes valores a los parámetros.
  • Constructor de copias: en el constructor de copias, el método __construct() acepta la dirección de los otros objetos como parámetro.
     

Constructor predeterminado: en el constructor predeterminado, el método __construct() no tiene parámetros. Los valores pasados ​​al constructor predeterminado son predeterminados.

Ejemplo: Tomemos el ejemplo de una clase «estudiante» que mostrará un mensaje simple para esta clase. Definiremos un constructor sin un parámetro.  

Constructor sin parámetro:

PHP

<?php
 
class Student {
    function __construct() {
        print "This is __construct without parameter\n";
        print "Welcome To GeeksforGeek";
    }
}
 
$obj = new Student();
?>

Producción:

This is __construct without parameter
Welcome To GeeksforGeek

Constructor con parámetro:

Ejemplo 2: Tomemos otro ejemplo de una clase “estudiante” que tiene dos propiedades “ nombre ” y “ apellido ”. Para esta clase, definiremos un constructor con un parámetro que inicializará las propiedades de la clase cuando se cree el objeto.

PHP

<?php
 
class student {
   
    // Class properties
    public $name;
    public $surname;
     
    // constructor with parameter
    public function __construct($name, $surname) {
        $this->name = $name;
        $this->surname = $surname;
    }
 
      // Display student data
    public function display() {
        echo "My name is " . $this->name
              . "<br>Surname is " . $this->surname;
    }
}
     
// Create class object and pass value
$user = new student("john", "biber");
$user->display();   
 
?>

Producción:

My name is john
Surname is biber

PHP Destructor: el método PHP Destructor se utiliza para destruir objetos o liberar su memoria adquirida. Un destructor se llama automáticamente cuando se crea el objeto. Por lo general, se llama al final del script. El método destructor no toma ningún argumento. El destructor no devuelve ningún tipo de datos. Todo este proceso es manejado por Garbage Collector.

Propiedades:

  • El método __destruct() no toma ningún parámetro.
  • El método __destruct() no tendrá ningún tipo de devolución.
  • Este método funciona exactamente al contrario del método __construct en PHP.
  • __destruct se llama automáticamente al final del script.
  • El método __destruct() comienza con dos guiones bajos (__).
  • Se utiliza para desinicializar objetos existentes.  

Sintaxis:

function __destruct() {
    // Destroy objects or release memory.
}

Ejemplo:

PHP

<?php
 
class student {
   function __construct() {
       echo "This is a constructer<br>";
       echo "Object is initialized in constructer<br>";
    }
   
    function __destruct() {
        echo "This is destruct<br>";
        echo "Object is destroyed in destructor";
    }
}
  
$subject = new student();
 
?>

Producción:

This is a constructer
Object is initialized in constructer
This is destruct
Object is destroyed in destructor

Ejemplo: Ahora, tomemos un ejemplo de un estudiante de «clase» que tiene tres propiedades «nombre», «apellido» y «sitio web favorito». Para esta clase, definiremos un constructor con un parámetro y el destructor destruirá el objeto inicializado.

PHP

<?php
 
class Student {
    public $name;
    public $surname;
    public $website;
    public function __construct($name,
                  $surname, $website) {
        $this -> name = $name;
        $this -> surname = $surname;
        $this -> website = $website;
    }
   
    public function __destruct() {
        echo "My name is {$this -> name} "
            . "<br>Surname is {$this -> surname}";
        echo "<br>My favorite website is"
            . "{$this -> website}";
        echo "<br>Successfully object Destroyed";
    }
}
 
$info = new Student("John","Biber","Geeksforgeek");
 
?>

Producción:

My name is John
Surname is Biber
My favorite website is Geeksforgeek
Successfully object Destroyed

Ejemplo: Vamos a crear una clase «MyClass». En el constructor, definiremos una nueva propiedad de clase y la destruiremos en el destructor.   

PHP

<?php
 
class MyClass {
    function __construct() {
        echo "You are in constructor<br>";
        $this->name = "MyClass Object";
    }
 
    function __destruct() {
        echo "You are in destructor<br>";
        print "Just Destroyed " . $this->name;
    }
}
 
$obj = new Myclass();
 
?>

Producción:

You are in constructor
You are in destructor
Just Destroyed MyClass Object

Conclusión: en el mundo real, los constructores y las destrucciones son muy útiles ya que ocupan espacio en la memoria. Permiten la reutilización del código. En general son muy útiles.

Publicación traducida automáticamente

Artículo escrito por reshmapatil1227 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *