Comment faire pour savoir si une variable de l'ASP a été déclaré
Permettez-moi de commencer par dire que je suis un développeur PHP, pas un ASP, une. (Et je souhaite vraiment ASP avait isset()
.) Et je suis en train de travailler dans un environnement réel, donc je ne pas vraiment avoir l'occasion de faire des tests.
Toutes les ressources que j'ai trouvé suggérer différentes façons de tester l'existence d'une variable.
Voici ce que j'essaie de faire:
Sur CERTAINES pages, j'ai mis une variable qui contient une valeur pour l'un des robots <meta>
tag:
dim dsep_robots
dsep_robots = "nofollow,noindex"
Toutes les pages comprennent header.asp
. Dans mon fichier d'en-tête, je veux tester si dsep_robots
a une valeur et, dans l'affirmative, la sortie de cette valeur, sinon, elle ne renvoie rien.
Je pense que que de tester si dsep_robots
a une valeur pourrait ressembler à ceci:
if not dsep_robots = "" then
'...
end if
Les meilleures pratiques en PHP état que lorsque vous utilisez une variable qui peut ou peut ne pas exister, vous devriez toujours tester if (isset($var)) {...}
(ne pas le faire va déclencher un Avis si la variable n'existe pas).
Est-il une telle chose en ASP -- c'est à dire en ai-je vraiment besoin de tester si elle existe, ou puis-je simplement tester si elle a une valeur?
- A l'une des deux réponses ci-dessous pour vous? 🙂
- J'ai décidé d'aller avec une approche différente, où ce n'était plus un problème.
- Eh bien, vous pourriez peut-être décider quelle réponse vous aimé le plus, et de l'Accepter (même si vous êtes allé avec une approche différente) juste pour le plaisir de récompenser au moins l'un de ceux qui a pris son temps et d'efforts pour essayer de vous aider. Just sayin'.
Vous devez vous connecter pour publier un commentaire.
ust par ailleurs, votre question n'est pas à propos de l'ASP classique, il s'agit d'un VBScript question. VBScript peut se produire dans des scripts à l'extérieur de l'ASP. Et la compilation ne se fait pas en VBScript, parce que c'est un langage interprété. Nevermind.
Je pense qu'il y a une certaine confusion ici -- et votre question semble avoir plus à faire avec les variables non initialisées que variables non déclarées. Pour les variables non déclarées, voir ci-dessous.
Non initialisés, essayez de la fonction IsEmpty.
Pour la vérification de la valeur null, essayez de la fonction IsNull.
Affiche:
Faux
Vrai
La Détection Des Variables Non Déclarées
Si vous incluez l'Option Explicite dans votre en-tête, l'utilisation d'un non-déclaration de la variable de provoquer une erreur d'exécution. Si votre script n'est pas l'Option Explicite, elle ne génère pas d'erreur, et il n'existe pas de fonction qui va vous dire si la variable a été déclarée ou non. Cela semble bâclée, et c'est, mais c'était intentionnel.
Le seul moyen d'échapper à ce qui est à l'Option Explicite et puis intercepter l'erreur que vous obtenez lorsque vous essayez d'utiliser la variable non déclarée. Si vous intercepter cette erreur particulière, vous trouverez qu'il a Err.Nombre = 500. Donc, la suite à faire ce que vous voulez:
Bien sûr, si vous définissez l'Option Explicite et votre code est en proie à des variables non déclarées, alors vous obtiendrez des erreurs jetés dans tous les sens, de sorte que vous aurez besoin de définir on Error Resume Next en haut de votre code, de sorte que vous pouvez réussir à l'ignorer, et seulement piège quand vous voulez.
Par la voie, voici de Microsoft en ligne de référence pour VBScript:
http://msdn.microsoft.com/en-us/library/d1wf56tt(v=VS.85).aspx
<!-- #include file="header.asp" -->
, je devrais plutôt que d'effectuer un contrôle à l'intérieur de l'en-tête.asp pour déterminer quel fichier il est inclus dans.IsEmpty
pour vérifier les variables non déclarées. Vous ne serez pas en mesure de faire la différence entre non déclarée et initialisée, cependant.@Jazzerus: je vous recommande de mettre le code dans en-tête.asp dans un
Sub
, quelque chose comme...et puis dans votre appel, pages comprennent en-tête.asp à droite, en haut et à l'utilisation
Si vous ne définissez pas
dsep_robots
sur cette page, puis il suffit de laisser le deuxième paramètre vide ("")Puis il suffit de vérifier si la variable est vide ou non dans le
Sub
devrait suffire:<!-- #include file="header.asp" -->
?Ce sujet:
qui semble avoir été de travailler pour moi.