[POO] detruire un objet __destruct
Bonjour,
je cherche un détruire un objet pour arrêter la connexion au serveur MySQL. Seulement, mon objet se détruit 2 fois ; une fois à l'appel de __destruct et une autre fois à la fin du script.
La classe :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
<?php
/*-------------------------------------------------------------
IPDO - classe singleton
-------------------------------------------------------------*/
class IPDO {
private static $PDOinstance = null;
private function __construct() {
try {
$this->PDOinstance = new PDO('mysql:host='.DB_serveur.';charset='.Encodage.';port='.DB_port.';dbname='.DB_base, DB_user, DB_mdp);
}
catch (PDOException $e) {
// erreur
}
}
public static function Connecter() {
if (is_null(self::$PDOinstance)) {
self::$PDOinstance = new IPDO();
}
return self::$PDOinstance;
}
public function __destruct() {
echo 'objet detruit';
}
}
?> |
que je crée et détruit comme ceci :
Code:
1 2 3
|
$connexion = IPDO::Connecter();
$connexion->__destruct(); |
et le résultat :
Citation:
Envoyé par Mon navigateur
objet detruitobjet detruit
J'en déduis que je détruis bien l'objet et qu'il est détruit une nouvelle fois à la fin du script mais je ne comprend pas pourquoi j'obtiens ce résultat.
----édit----
Il suffisait d'utiliser
Code:
1 2 3
|
$connexion = IPDO::Connecter();
unset($connexion); // destruction ou $connexion = null; |
désolé pour le dérangement ;)