2010-10-28 4 views
0

Je reçois cette erreur vraiment mauvaise. J'ai essayé de copier les classes exemple sur PHP.net. La classe a fonctionné mais je ne peux pas sembler l'inclure correctement. Mon fichier d'index inclut le fichier users.class.php et le fichier content.php qui a l'appel à la classe.Classe PHP causant l'erreur

Erreur:

Fatal error: Class 'A' not found in X:\xxxxx\xxxx\xxxxx\content.php on line 2

index.php:

<?php 
    require('users.class.php'); 
    $a = new A(); 
    require('content.php'); 
?> 

content.php:

<?php 
    echo $a->foo(); 
?> 

users.class.php:

<?php 
    class A 
    { 
     function foo() 
     { 
     return 'hello world'; 
     } 
    } 
?> 
+0

Vous êtes certain que vous incluez la bonne 'users.class.php'? –

Répondre

1

hmm ... je suppose que la ligne

echo $a->foo(); 

est en cours d'exécution avant que le préprocesseur a entièrement lu dans users.class.php.

essayer d'ajouter cette ligne à content.php:

require_once("users.class.php"); 

au-dessus de la ligne echo....

Modifiez également votre index.php require en require_once. Cela garantira que votre classe est lue avant que le code ne soit exécuté, et vous n'obtiendrez aucune erreur indiquant que le fichier a déjà été inclus.

+0

mmm .. qui n'a aucun sens. le code bloque, dans le même sens sur js sur les navigateurs, aussi par définition un * require * ou * include * statement va juste "coller" (include) le code juste avant de continuer l'exécution –

+0

Je me sens terriblement stupide, j'ai passé plus d'une heure de travail à une faute de frappe. Mon problème était que j'avais besoin du mauvais fichier. – Lienau

0

premier: Je couru votre code et fonctionne

deuxième: l'erreur n'a pas de sens puisque content.php ne contient pas la déclaration de la classe « A », en tout cas, l'erreur il devrait indiquer que la classe n'a pas été trouvée dans le fichier "index.php".

S'il vous plaît vérifier les caractères cachés et essayez à nouveau