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 PHP : Sélectionner tout - Visualiser dans une fenêtre à part
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 PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $connexion = IPDO::Connecter(); $connexion->__destruct();
et le résultat :
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.Envoyé par Mon navigateur
----édit----
Il suffisait d'utiliser
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $connexion = IPDO::Connecter(); unset($connexion); // destruction ou $connexion = null;
désolé pour le dérangement![]()







Répondre avec citation
Partager