Les constantes PHP undefined - mais qu'ils sont définis!

Je suis en utilisant des constantes pour définir les différentes variables de configuration au sein d'un script.

La INC_PATH constante est définie dans le script qui inclut la bibliothèque de classe.

define('INC_PATH',$_SERVER['DOCUMENT_ROOT'].'includes/');
include('class.lib.php');

La bibliothèque de classe contient divers include('someClass.php') les lignes. Il contient également:

require(INC_PATH.'DB.class.php');

La bibliothèque de classe lance un avis:

Use of undefined constant INC_PATH - assumed 'INC_PATH'

Comment est la bibliothèque de classe pas en mesure de voir que la INC_PATH constant a été défini? J'ai pensé constantes ont été mondial?

êtes-vous sûr que c'est en effet include('class.lib.php'); pas quelque chose comme include('http://example.com/class.lib.php'); ?
Des éclats d'obus, Il n'est pas, mais quelle différence pourrait que faire si il a été? Serait-il la cause de l'une des constantes de ne pas être défini? Qui ne semble pas faire sens.
Oh, mais c'est logique. Dans le dernier cas, vous comprennent le interprétée version du script, qui ne savent pas du tout les constantes que vous avez défini lors de l'inclure, car il est exécuté par lui-même dans une autre demande (à l'initiative du serveur).
Alors, comment voulez-vous le faire fonctionner sans être une autre demande? Il y a d'autres fichiers inclus plus tard dans le script, l'utilisation de diverses constantes avec pas de problèmes. Comment est-ce qu'ils travaillent alors que celui-ci ne l'est pas?
Pouvez-vous essayer get_defined_constants() pour voir si le contenu est conforme à votre schéma de la pile d'appel?...

OriginalL'auteur bcmcfc | 2010-07-09