Class not found
darkchristophetd
Messages postés
1100
Date d'inscription
Statut
Contributeur
Dernière intervention
-
le père -
le père -
Bonjour,
Je poste dans le forum à cause d'une erreur que je trouve vraiment illogique.
Voici mes codes.
membres.php
membre.class.php
membres_controleur.php
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
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
3 réponses
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 ?
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 ?
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.
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.