Posez votre question Signaler

Class not found

darkchristophetd 1111Messages postés 26 février 2008Date d'inscription 14 novembre 2010Dernière intervention - Dernière réponse le 14 juin 2009 à 22:44
Bonjour,
Je poste dans le forum à cause d'une erreur que je trouve vraiment illogique.
Voici mes codes.
membres.php
<?php
[...]
//inclusion de classe
include('modeles/membres/classes/membre.class.php');

//inclusion du controleur principal 
include('controleurs/membres_controleur.php');

[...]
?>

membre.class.php
<?php
class Membre
{
     public function __construct()
     {
          [...]
     }

     public function inscription()
     {
          [...]
     }
}
?>

membres_controleur.php
<?php
$membre = new Membre();
$membre->inscription();
?>

Et ce code tout bête qui devrait (il me semble) fonctionner parfaitement, m'affiche l'erreur Fatal error: Class 'Membre' not found in C:\...\controleurs\membres_controleur.php on line 2 ... Alors que la classe a été inclue juste avant le contrôleur qui appelle la classe !
Pourquoi cette erreur est-elle affichée ?
Je me creuse la tête mais ne parviens pas à trouver mon erreur ...
Merci d'avance pour votre aide,
christophetd
Lire la suite 

Class not found »

3 réponses
Réponse
+0
moins plus
Bonjour

Je viens de faire l'essai, ça marche chez moi. Donc tu as raison, ça doit fonctionner.
Peux-tu rajouter une erreur volontaire (genre $x=;) dans membre.class.php, juste avant le définition de Membre pour vérifier que tu y passes bien ?
Ajouter un commentaire
Réponse
+0
moins plus
Je n'ai pas fait ça, mais en faisant un echo 'XXX', ça n'affiche rien.
Bizarre non ?
Ajouter un commentaire
Réponse
+0
moins plus
Il ne fallait pas faire le test avec un echo.
En effet, le PHP est interpreté en 2 passes. L'echo n'est exécuté qu'à la deuxième passe, alors que ton erreur de classe non déclarée est détectée dès la première passe. Donc avant l'éxécution de l'echo même si celui-ci est placé avant.
C'est pour ça que je t'avais dit de provoquer une erreur qui est détectée dès la première passe.
Ajouter un commentaire
Ce document intitulé « Class not found » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook