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] Non instanciation depuis une fonction : ce comportement est-il normal ?


Sujet :

Langage PHP

  1. #21
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    Bernardo, si tu mets $userobj=new erozia_user(); ligne 40 avant l'include, est-ce que ça passe ? (j'espère que non, mais bon... on ne sait jamais...)

  2. #22
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    oui, je viens de le faire, même resultat
    Tu viens de faire quoi ?

    J'ai pas étudier en détail tout tes include et require, mais je soupconne fortement que le problème viens de la

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    c'est ce que j'etais en train de faire, ca ne fonctionne pas et j'obtiens une autre erreur qui me dit que l'objet n'exite pas

    Fatal error: Call to a member function on a non-object in f:\indeeplight.net\demo\news\news_bibliotheque\scripts\erozia_liste_sender_ticket.php on line 15

    par contre en ecrivant ceci juste avant l'include de la ligne 40

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $userobj= new erozia_user();
    var_dump($userobj);
    je vois que l'objet existe mais que je ne peux pas l'utiliser dans le fichier inclus a la ligne 40

  4. #24
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    effectivement Eric93, si je prend la totalité du fichier inclus a la ligne 40 et que je remplace l'include, ca marche.
    Mystere, pourquoi?

  5. #25
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    424
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 424
    Points : 382
    Points
    382
    Par défaut
    Je dois partir, pas le temps d'étudier en détail, mais le problème viens de tes include et require, cherche de ce coté la

  6. #26
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Merci pour tout en attendant,

    je viens de verifier, le fichier est inclus correctement, la seule difference, c'est que ca ne marche pas depuis le fichier inclus et ca marche si le code est en dure a la place de l'include.

    Y a t'il un bug existant au niveau des incluse?

  7. #27
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    Je sais que depuis PHP4 il n'y a plus de différences, mais si tu mets require au lieu d'include ligne 40, as-tu le même résultat ?

  8. #28
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    oui exactement le même

  9. #29
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    En fait, j'ai lu un truc dans la doc php qui dit que les variables sont adapté au contexte dans lequel elle sont importeés.
    je pense que la porté des variables est modifiée par l'include et ca marche plus

    faut que je verifis ca demain

  10. #30
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par stfm Voir le message
    Je sais que depuis PHP4 il n'y a plus de différences, mais si tu mets require au lieu d'include ligne 40, as-tu le même résultat ?
    Non, il y a une grande différence : require génère une erreur fatale, ce qui confirme ou infirme la bonne inclusion. Personnellement, je ne fais que des require_once, et j'utilise très rarement les include, car la plupart du temps le code dépend d'une inclusion réussie.

    Normalement ça aurait dû coincé avant, mais je pense qu'il serait bon, de rendre au moins le constructeur public. Je crois que sans déclaration explicite, les functions sont privées. Et c'est de toute façon une bonne habitude à prendre de spécifier private ou public.

  11. #31
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    oui, oui, il y a cette différence, mais ce n'est pas ce qui m'interessait dans mon propos. La différence en question était require inclus quoiqu'il arrive (donc avant interprétation) et include peut être soumis à condition (donc inclusion pendant le déroulement du code).

    Bernardo. Toujours pour tester, si tu remplace le require_once qui inclus ta classe par un require, juste pour voir (vu qu'on ne connait pas tout le code... on ne sait jamais)

  12. #32
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Bonjour à tous,

    En remplacant le require_once par require, le resultat est le même.

    Il faut quand même que j'explique une chose.
    Dans le script de base la fonction afficher_box est appeler pas mal de fois, en fonction des boites a afficher sur l'ecran.

    A chaque fois quelle est appelée, il peut y avoir un script venant d'une biblliotheque qui est inclus et qui s'execute a ce moment.

    Jusqu'a maintenant, a l'affichage de la page, tous les scripts sont inclus correctement et s'execute.

    Il n'y a que celui avec l'instanciation de l'objet qui me donne l'erreur
    cannot instantiate non-existent class: erozia-user

    par contre comme le l'expliquais plus haut, si je remplace l'include par le code en dur, ca marche.

    Ce que je constate par le message d'erreur, c'est qu'avec l'include le script se comporte comme s'il ne pouvait voir la class importé par require_once ou require.

  13. #33
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Mars 2002
    Messages : 25
    Points : 14
    Points
    14
    Par défaut
    Il y a des fois ou je suis vraiment trop con.

    J'ai trouvé pourquoi ca ne fonctionne pas.

    Au depart, quand la page se charge, le script en question n'est pas inclus.
    celui ci est inclus au moment ou je click sur un petit bouton qui declenche une fonction ajax.
    Donc la effectivement cela ne peut que ne pas fonctionner si le require est hors de ce script.

    Desolé de vous avoir fait chercher pour rien, il y a des fois ou on est aveuglé par une erreur sans voir le detail tres simple qui est en evidence

  14. #34
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 51
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 52
    Points : 58
    Points
    58
    Par défaut
    C'est rassurant on peut continuer à utiliser les includes alors

    Bonne continuation

    stf

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [AS2] Atteindre attribut d'une classe depuis une fonction interne a la classe
    Par Demco dans le forum ActionScript 1 & ActionScript 2
    Réponses: 6
    Dernier message: 18/04/2006, 22h03
  2. Variable générale non trouvée dans une fonction
    Par mickael.be dans le forum Langage
    Réponses: 10
    Dernier message: 21/02/2006, 20h18
  3. [PHP-JS] Formulaire non trouvé dans une fonction
    Par philippe30 dans le forum Langage
    Réponses: 4
    Dernier message: 11/12/2005, 22h53
  4. Retourner un tableau depuis une fonction
    Par obalais dans le forum C++
    Réponses: 2
    Dernier message: 20/10/2005, 17h49
  5. Ecrire dans un tableau html depuis une fonction js ?
    Par botanica dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/10/2005, 13h48

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