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] __destruct automatique


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Par défaut [POO] __destruct automatique
    Bonsoir,

    J'ai commencé ce soir à programmer en objet en php.
    Je n'arrive pas à comprendre pourquoi je suis obligé d'ajouter une demande de __destruct(), qui normalement devrait être automatique, dans le script suivant :
    <?php

    class fdlib_form_display {
    public static $nb_instance=0; // number of instance in the page
    private $nb_composant=0; // number of composant for this instance

    function __construct($file) {
    fdlib_form_display::$nb_instance++;
    echo
    '<form action="'.$file.'" method="post" enctype="multipart/form-data">';
    echo
    fdlib_form_display::$nb_instance.'<br />';
    }

    function
    text(){
    $this->nb_composant++;
    echo
    '<input type="text" nom="form'.fdlib_form_display::$nb_instance."_".$this->nb_composant.'" />';
    }

    function
    __destruct() {
    echo
    '</form>';
    }
    }

    $formulaire = new fdlib_form_display("test.php");

    $formulaire->text();
    $formulaire->text();
    $formulaire->__destruct(); // <---- ici

    $formulaire2 = new fdlib_form_display("test.php");

    $formulaire2->text();

    ?>
    Colorez votre code PHP sur les forums grâce à Developpez.com

    Vu que je n'utilise plus $formulaire après le 2ème "$formulaire->text()", le __destruct ne devrait-il pas être automatique ?

    (Si vous trouvez de grosses erreurs, profitez en pour me le signaler )

    Merci, bonne soirée

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    salut
    si la destruction de l'objet n'est pas explicitement demander (unset($myobect))

    alor celui ci est detruit lorsqu'il n'est plus utiliser (grosso modo lorsque php termine le script)

    dans ton cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $formulaire = new fdlib_form_display("test.php");
     
    $formulaire->text();
    $formulaire->text();
    unset($formulaire) // <---- ici 
     
    $formulaire2 = new fdlib_form_display("test.php");
     
    $formulaire2->text();
    unset( $formu2laire)
    mais dans ton ca il vaudrai mieux utiliser une methode "end"

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Par défaut
    Merci pour ta réponse.

    Lorsque tu parles de méthode "end", tu veux dire pour le "</form>" ou pour apeler le "__destruct" ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    882
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 882
    Par défaut
    juste refermer ton formulaire

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3
    Par défaut
    Dans ce cas, ne vaudrait il pas mieux aussi créer une methode "start" pour enlever ce qui est dans __construct ?
    Pardon pour toutes ces questions, mais quite à apprendre, autant apprendre bien directement

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

Discussions similaires

  1. [POO] Récuperation automatique du champs d'un formulaire
    Par AliJava dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/05/2008, 11h35
  2. [POO] problème d'instanciation automatique de classe
    Par Slade991 dans le forum Langage
    Réponses: 10
    Dernier message: 22/12/2007, 15h23
  3. [POO] utilisation de __destruct()
    Par grunk dans le forum Langage
    Réponses: 3
    Dernier message: 11/05/2007, 10h18
  4. [POO] Utilisé la function __destruct() pour...
    Par shadeoner dans le forum Langage
    Réponses: 4
    Dernier message: 31/03/2006, 14h56
  5. [POO] Class Défilementa automatique d'images avec animation
    Par rakoto.n dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 14/01/2005, 18h21

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