Détruire un objet dans son constructeur [Résolu]

Signaler
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
-
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
-
Bonjour à tous,

J'ai une classe :
class Compte {

    ...
// Constructeur

    function Compte( $ID ) {

       // Connexion à la BD et récupération des infos

      

       // Si echec, que faire ??

       return null;
    }

}

Voilà le problème c'est que si on arrive pas à retrouver les données, j'aimerais que celui qui a créé la classe puisse le savoir.
Je voulais donc faire un return null, pour que l'appelant ne reçoivent rien en faisant new Compte($Id).
Mais ça renvoie quand meme l'objet.

J'ai essayé unset($this) mais marche pas...

Avez vous une solution ?
Merci

- MadMatt -

 www.choisir-une-entreprise.com
A voir également:

2 réponses

Messages postés
30
Date d'inscription
vendredi 1 février 2008
Statut
Membre
Dernière intervention
26 janvier 2011

Bonjour,

En objet, tu ne peux pas demander d'instancier un objet et lui dire dans le contructeur de se détruire si une erreur se produit.
Faire : $mon_compte = new Compte($id); te renverra toujours une instance de la classe "Compte".

En PHP5, tu peux éventuellement lancer une exception : throw new Exception('Ton message d\'erreur');
que tu traitera dans un bloc try - catch

En PHP4 (comme en 5), tu pourrais te créer une variable membre "$loaded" initialisée à false et que tu mettras à true quand ton objet
sera chargé. Reste à créer une méthode "isLoaded()" qui retourne simplement la valeur de cette variable afin de savoir si tout c'est bien passé.
Messages postés
2167
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
16 juillet 2009
1
Ok pour la méthode isLoaded(), pour l'instant je vérifiais si l'ID était > 0 (mais c'est plus propre avec ta méthode).

Merci !

- MadMatt -

 www.choisir-une-entreprise.com