IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] Appel destructeur


Sujet :

Langage PHP

  1. #1
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut [POO] Appel destructeur
    Bonjour, j'ai un problème avec la méthode __destruct.

    Je me demandais pourquoi elle était appelée juste après la construction de l'objet dans une "grosse classe" mais en testant ce bête code :

    Code : 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
     
    <?php
     
    class test {
    	function __construct() {
    		echo '__construct';
    	}
     
    	function __destruct() {
    		echo '__destruct';
    	}
     
    	function abc() {
    		echo 'abc';
    	}
    }
     
    $t = new test();
     
    $t->abc();
     
     
    ?>
    J'obtiens :

    __construct__destructabc__destruct

    Où est le problème ? je précise que dans la classe dans laquelle je travaillais quand j'ai remarqué ce genre de problème de nombreux appels à __destruct se produisaient avant la fin du script, ce qui faisait planter l'objet (fermeture de fichier..) et le serveur apache (comme si il y ait une boucle infinie sur la méthode destruct).

    PS : Je suis sous wamp avec php 5.2.8

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    60
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2005
    Messages : 60
    Points : 58
    Points
    58
    Par défaut
    Bonjour

    C'est bizarre, je viens de tester ton code sur un IIS avec PHP 5.2.5 et ça me renvoie : __constructabc__destruct .
    Tu n'as pas un problème de configuration ?

  3. #3
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    Je viens de changer la version de php en 5.2.9-2 et le problème est résolu..

    Merci

  4. #4
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    Par contre, d'autre problèmes avec le destructeur :

    • file_exists renvoie false alors que le fichier existe
    • file_size donn une erreur
    • d'autres fonctions également..

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    Citation Envoyé par Oprichnik Voir le message
    Par contre, d'autre problèmes avec le destructeur :

    • file_exists renvoie false alors que le fichier existe
    • file_size donn une erreur
    • d'autres fonctions également..
    Peut-être que ton process PHP n'a pas les droits suffisants que pour accéder à ton fichier.
    Most Valued Pas mvp

  6. #6
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    Si, quand j'utilise ces fonctions dans une méthode de la classe ça marche correctement..

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Points : 1 234
    Points
    1 234
    Par défaut
    Peut-être tes variables (chemin du fichier) ne sont-elles plus ce que tu crois au moment où est appellé le destruct.
    Most Valued Pas mvp

  8. #8
    Membre habitué

    Homme Profil pro
    Developpeur web
    Inscrit en
    Septembre 2006
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Developpeur web
    Secteur : Enseignement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 225
    Points : 180
    Points
    180
    Par défaut
    Étrangement, je viens de re-tester pour confirmer et... ça marche. Je suis pourtant sur d'avoir rencontré ce problème étant donné que j'ai du créer une méthode "close" pour ma classe principale qui remplace __destruct..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POO] Appel des destructeurs
    Par Merfolk dans le forum Langage
    Réponses: 2
    Dernier message: 28/03/2008, 17h59
  2. [POO] Appel de fonctions PHP5
    Par ralkif dans le forum Langage
    Réponses: 6
    Dernier message: 10/02/2006, 16h05
  3. Question d'exécution: Appel destructeur.
    Par SpongeBob dans le forum C++
    Réponses: 2
    Dernier message: 10/01/2006, 20h48
  4. [POO]Appelé une méthode d'une classe mère
    Par LE NEINDRE dans le forum Langage
    Réponses: 2
    Dernier message: 14/12/2005, 14h44
  5. Réponses: 3
    Dernier message: 06/11/2005, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo