J'ai défini certaines constantes, par exemple: maintenant lorsque j'essaie de le faire: p> class Auth{
function AuthClass() {
$this->db_link = mysql_connect(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD)
or die(mysql_error());
}
}
3 Réponses :
Lorsque le script est exécuté, les définitions de la classe constante et de la classe doivent être incluses.
par exemple par exemple p>
constantes.php.inc p> Auth.php.inc p> script.php p>
Umm. Cela ne fait vraiment rien pour résoudre le problème car les classes ne reconnaissent pas les variables définies en dehors de la portée de la classe. Tout cela est réorganisé les informations avec exactement le même résultat.
@ Joseph Constantes ne sont pas des variables et elles sont effectivement reconnues à l'intérieur de toute fonction / méthode exécutée après leur définition. Ceci est une réponse valide et peut en effet répondre à la question.
La réponse ci-dessus est le problème que j'ai
@Ashley Ward Voir ici CODEPAD.VIPER-7.COM/WCDT6R Comme vous pouvez le voir, vous peut accéder à des définis définies dans une classe.
Vous êtes correct et je suis humilié. Il doit y avoir d'autres erreurs avec mon code.
Je suis corrigé aussi bien. Supprimer ma réponse afin de ne pas mal diriger d'autres demandeurs.
Il devrait fonctionner aussi longtemps que vous avez défini les constantes avant authlass () code> exécute. S'ils ne sont pas dans le même fichier que votre classe
auth code>, vous devez d'abord les inclure dans le fichier que
auth code> réside afin qu'il puisse les voir:
include("the_file_that_has_those_constants_in_it.php");
On dirait que vos constantes ne sont pas définies avant d'instancier la classe étant donné l'erreur que vous obtenez ( Au fur et à mesure que d'autres réponses State, assurez-vous que vous définissez les constantes avant de tenter d'appeler en tant que Misté, les constantes définies sont pas de variables. Vous ne pouvez pas utiliser
p> auth code>. Lorsque vous utilisez une constante non définie de cette façon, PHP émettra un avertissement et le convertira à une chaîne. Si le problème est effectivement que vos constantes ne sont pas définies, votre code sera effectivement interprété comme suit:
auth :: authlass code >. Si la classe et les constantes DB_ * sont définies dans différents fichiers, assurez-vous que les deux fichiers sont inclus avant de tenter d'instancier / d'utiliser la classe
auth code>. P>
Global Constat_Name; Code> de cette manière, et vous n'avez pas besoin de - toutes les constantes sont toujours globales et disponibles partout après la définition du point. Un test simple prouve ceci: p>
Si vous obtenez cette erreur, la définition définitivement n'est pas définie lorsque la méthode est invoquée.