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] Problème avec un require_once dans une classe


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut [POO] Problème avec un require_once dans une classe
    Bonjour,

    J'ai un petit soucis avec une classe dans laquel j'inclus un require_once.

    Exemple:

    J'ai mon fichier index.php où je fais une instanciation du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $admin = new FBAdmin();
    dans cette même page index.php, je fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once('framework.php');
    dans framework.php je fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     require_once('includes/cms.php')
    et dans cms.php, j'ai en fait ma classe FBAdmin où il y a une fonction page();

    dans cette fonction page, je fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once('templates/blue/index.php')

    Mais si je fais un

    il m'indique ceci:

    Fatal error: Call to a member function mainmenu() on a non-object

    Hors $main est bien un objet mais avec le require_once ça plante...

    Quelqu'un à une idée?

    Merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    D'ou vient ton objet $main, ou tu l'as instancié.

  3. #3
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    dans framework.php

    juste après l'inclusion de cms.php

    PS : dans l'exemple sorry j'ai mis $main au lieu de $admin...

    C'est une erreur de ma part mais dans le code c'est bien $admin (d'ailleurs j'ai corrigé)

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Essaye de mettre un var_dump($admin); au debut de chaque fichier, comme cela tu verras a quelle moment ta variable semble disparaitre.

  5. #5
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    ben avant le require_once('templates/blue/index.php'); dans la function page() de la classe, var_dump($admin) me retourne bien un objet quand je suis dans le fichier cms.php.

    dès que le require_once est fait et que je fais un var_dump($admin) dans ce fichier (templates/blue/index.php) il me retourne NULL.


    Maintenant si je retire ce require_once('templates/blue/index.php'); de la fonction page() de ma classe et que je le met juste après: $admin->page(); dans cms.php, ça fonctionne...

    Quelle en est la raison? D'où vient le problème?

  6. #6
    Membre confirmé Avatar de Sayrus
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    899
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 899
    Points : 570
    Points
    570
    Par défaut
    J'ai trouvé,

    il ne faut pas appeler $main->fonction();

    mais $this->fonction();

    car l'include se fait dans la classe...

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

Discussions similaires

  1. problème avec l'apostrophe dans une requête
    Par mika0102 dans le forum VBA Access
    Réponses: 7
    Dernier message: 09/03/2019, 16h51
  2. Réponses: 4
    Dernier message: 27/10/2009, 11h14
  3. [Delta3d] probléme avec un objet dans une map
    Par astragoth dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 27/03/2006, 14h49
  4. Problèmes avec un TWebBrowser dans une DLL
    Par bellamyjc dans le forum Composants VCL
    Réponses: 2
    Dernier message: 12/01/2005, 22h35
  5. Problème avec un LIKE dans une procédure stockée
    Par Oluha dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/12/2004, 14h38

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