PHP __construct () and __destruct ()


Exemple

__construct() est la méthode magique la plus courante en PHP, car elle est utilisée pour configurer une classe lorsqu'elle est initialisée. Le contraire de la méthode __construct() est la méthode __destruct() . Cette méthode est appelée lorsqu'il n'y a plus de références à un objet que vous avez créé ou lorsque vous forcez sa suppression. La récupération de mémoire de PHP va nettoyer l'objet en appelant d'abord son destructeur, puis en le retirant de la mémoire.

class Shape {
    public function __construct() {
        echo "Shape created!\n";
    }
}

class Rectangle extends Shape {
    public $width;
    public $height;

    public function __construct($width, $height) {
        parent::__construct();

        $this->width = $width;
        $this->height = $height;
        echo "Created {$this->width}x{$this->height} Rectangle\n"; 
    }

    public function __destruct() {
        echo "Destroying {$this->width}x{$this->height} Rectangle\n";
    }
}

function createRectangle() {
    // Instantiating an object will call the constructor with the specified arguments
    $rectangle = new Rectangle(20, 50);

    // 'Shape Created' will be printed
    // 'Created 20x50 Rectangle' will be printed
}

createRectangle();
// 'Destroying 20x50 Rectangle' will be printed, because
// the `$rectangle` object was local to the createRectangle function, so
// When the function scope is exited, the object is destroyed and its
// destructor is called.

// The destructor of an object is also called when unset is used:
unset(new Rectangle(20, 50));