1. Отказ от диммирования удобен, но также таит в себе скрытую опасность!
Применение переменной и ее последующее использование — это стандартный подход:
затемнить
а = "1"
На самом деле, вы можете сделать это, не записывая dim:
а = "1"
Система не считает, что произошла ошибка. Она автоматически определит, существует ли переменная. Если она существует, она продолжит выполнение. Если она не существует, она автоматически применится к вам! Кажется, что система такая умная, умная и внимательная, но здесь таятся скрытые опасности! Понимает ли система, что я имею в виду? Система, скорее всего, окажется слишком умной и бесполезной! Вопрос 1: Если я раньше подал заявку на переменную, например администратора, и хочу присвоить значение этой переменной позже, я, к сожалению, пишу неправильную букву или пропускаю букву. письмо, такое как администратор = «мне», система наконец дождалась возможности «помочь» мне и «вызвалась» объявить для меня переменные. Трудно выразить, насколько «внимательным» это было! Да, программа может работать, но логика нарушена. Поскольку система не сообщает об ошибке (или сообщает о другой ошибке, чтобы ввести вас в заблуждение), вы не сможете быстро обнаружить проблему. Если программа большая, вы это сделаете. потратите много времени. Что вы чувствуете после того, как потратили много времени на поиск основной причины? Вы определенно захотите отругать систему за «самомотивацию». Если бы система сообщила, что имя переменной администратора не существует, я бы вскоре узнал, что я написал его неправильно, и быстро исправил бы проблему, не «балуясь» этим. автоматическое «Будь страстным» системы! Еще одна скрытая опасность, вызванная отсутствием дима, будет обсуждаться позже!
2. Переменные, объявленные внутри функции, не будут мешать внешним переменным!
например:
< %@LANGUAGE="VBSCRIPT " CODEPAGE="936"%>
<%
затемнить
а = "1"
функция getstr()
затемнить
а = "2"
завершить ответ функции
. Напишите & "<br>"
getstr()
ответ.Напишите & "<br>"
%>
Результат показывает, что переменные, объявленные внутри функции, не будут мешать внешнему миру. Ее область действия находится внутри функции. На самом деле это должен знать каждый, кто изучал другие языки! Но сначала нужно сказать, что если удалить dim a внутри функции, то a будет считаться внешним a, и результат изменится! Областью применения переменных, применяемых в файле, является этот файл.
3. Включение, которое заставляет людей одновременно любить и ненавидеть его!
include может сделать структуру программы ASP более понятной, а некоторые часто используемые функции могут использоваться другими файлами! Хотя это приносит пользу, вы должны обратить внимание на недостатки!
Теперь вернемся к пропуску dim, упомянутому в первом пункте. Ранее я упоминал, что мое назначение было «любезно» преобразовано системой в объявленную переменную. Сейчас я говорю об обратном. Я хочу объявить переменную, но система присваивает ей значение, потому что переменную можно объявить, даже если dim опущен. Для программистов, которые любят экономить и упрощать, они. часто не могу устоять перед этим искушением (мне тоже иногда нравится так применять. хе-хе) Но можете ли вы гарантировать, что имя переменной, к которой вы подавали заявку, отсутствует в программе до этого? Если перед ней стоит это имя переменной, не означает ли это, что вы подали заявку на присвоение? Эта ошибка редко может быть допущена в одном и том же файле, но не забывайте, что это включенный файл. Если включенный файл содержит переменные, которые вы запросили, то вы облажались. Даже если он может работать, это уже файл. логическая проблема. Если вы не ленитесь и используете dim для применения, когда будет сообщено об ошибке, вам повезет узнать, что это имя переменной уже существует! Скоро это будет исправлено!
Теперь давайте обсудим более сложную ситуацию. Если вы включите два файла, в обоих файлах будет одно и то же имя переменной. Если вы используете dim для применения к обоим, хорошо, он просто сообщит об ошибке, сообщая, что имя переменной уже существует. , вы скоро узнаете проблему. Теперь вы можете понять, почему я говорил о втором пункте области видимости. Из-за области видимости переменные с одинаковым именем в разных файлах вообще не будут «драться». Однако, если он одновременно включен другим файлом, проблема будет серьезной, поэтому, если написанный вами asp-файл предназначен для включения, не допускайте возникновения ситуации с тем же именем. Возвращаясь к первоначальному обсуждению, было бы хорошо, если бы обе включаемые переменные с одинаковым именем были dim при их применении в двух включаемых файлах, но проблема возникает, если более поздний включенный файл применяется без включения dim. Последующее опущенное приложение dim. становится заданием. Самое ужасное, что оно находится в двух включаемых файлах, которые очень скрыты, что затрудняет поиск проблемы!
Подводя итог, можно написать несколько простых примеров для понимания проблем. Напоследок предлагаю:
1. Пожалуйста, используйте dim для применения переменных перед их использованием! Особо сложные программы, разработанные несколькими людьми!
2. При присвоении значений переменным обратите внимание на написание переменных!
3. Внимательно изучите включаемые файлы.
***Теперь поговорим о проверке ошибок:
на самом деле находить проблемы важнее, чем писать код! По моему личному опыту, проблемы делятся на три категории:
1. Тип сообщения об ошибке, проблема, с которой сталкивается система компиляции в процессе компиляции системы, выдает сообщение об ошибке. Это любимая проблема программистов. Ха-ха, это не ненормально, но проблема такого рода. проще всего проверить!
2. Тип логики, довольно досадная проблема. Программа успешно скомпилировалась и может быть запущена, но отображаемый результат не соответствует ожидаемому в вашей логике. Боже мой! Что мне делать? Нет подсказки. Я могу только проанализировать результаты ошибки, основываясь на опыте и ощущениях, а затем проверить исходный код. Если все пойдет хорошо, проблема будет решена через несколько минут. результат после тяжелого дня!
3. Категория производительности, ужасная проблема. Программа успешно скомпилировалась, работает нормально, отображает нормально! Однако время от времени к вам приходит ошибка, и вы понятия не имеете, при каких обстоятельствах она возникает, или производительность программы не такая высокая, как у аналогичных программ, и она работает медленно. Некоторые из этих проблем можно решить внутри. неделю или месяц, а некоторые можно решить в течение недели или месяца. Большинство из них являются стойкими заболеваниями, которые невозможно вылечить. Меня замучили до смерти подобные проблемы!
Поэтому, если вы хотите хорошо изучить программирование, вы должны попытаться решить проблемы самостоятельно. Особенно в случае с программами ASP, возникающие проблемы - это, в основном, сообщения об ошибках и их местоположения. не должно быть необходимости анализировать их самостоятельно. Я думаю, некоторые люди готовы провести три дня на форуме, ожидая, пока другие расскажут им о своих проблемах. Почему бы им не решить их самостоятельно? Если найдете проблему сами, то наберетесь опыта. В этом богатство программистов!
***Небольшой опыт программиста:
Не думайте, что вы программист только потому, что можете написать несколько строк кода или написать несколько небольших программ. Проработав несколько лет в компании-разработчике программного обеспечения, вы поймете, что значит быть программистом. Написание кода - это не что иное, как проверка ошибок и оптимизация кода. Напишите код, напишите документацию по программному обеспечению (не простое руководство пользователя, а приложение к проекту, инструкции по предварительному проектированию проекта, инструкции по детальному проектированию проекта, инструкции по проектированию базы данных, инструкции по тестированию проекта, руководство пользователя, руководство пользователя). руководство по эксплуатации и т. д.), факты То, что вы умеете программировать, еще не означает, что вы умеете разрабатывать программное обеспечение. На самом деле, я недостаточно хорош в некоторых аспектах, например в написании документации по программному обеспечению. Ха-ха, об этом страшно думать. Написание документации по программному обеспечению гораздо более болезненно, чем написание программы! Я работал программистом на Delphi три года, хотя после ухода из компании я завершил хороший программный проект. Но я все еще чувствую, что я недостаточный, поэтому продолжаю добавлять навыки в других аспектах. Конкуренция в этом обществе уже очень жесткая, тем больше вы работаете, чтобы приблизиться к безработице!
Что касается первого вопроса, я настоятельно рекомендую вам использовать Dim для определения переменных перед их использованием. Написать еще одну строчку кода не очень сложно. Затем используйте <%Option Explicit%> в заголовке файла ASP. Таким образом, если вы случайно напишете неправильное имя переменной, будет возвращена ошибка о том, что переменная не определена, и место ошибки можно будет легко найти. В противном случае переменная имеет нулевое значение.
Кроме того, поговорим о втором вопросе в связи с Option Explicit. Иногда нам необходимо включить несколько файлов (например, определение заголовка, верхнюю навигацию и другие коды), и Option Explicit можно использовать только в приложении ASP (обратите внимание, что здесь он относится к приложению, конкретно относится к приложению, а не к странице, и не означает страницу) один раз. Поэтому Option Explicit лучше не размещать внутри включаемого файла, чтобы избежать путаницы, вызванной многократным вызовом на нескольких страницах.
Давайте поговорим о небольшом вопросе о включении. Обычно, если включаемый файл находится в текущем каталоге, мы можем напрямую использовать
<!--#include file="abc.asp"-->,
чтобы включить его. Однако во многих случаях у нас есть N файлов, которые необходимо включить. Поэтому, чтобы облегчить управление, мы помещаем их в каталог INC или включаем. Таким образом, иногда включаемый код записывается так:
<!--#include file="..incabc.asp" -->
Вот что я хочу обсудить. Обратите внимание, что с помощью .. можно получить доступ к верхнему каталогу, что создает угрозу безопасности: пользователи могут нелегально ссылаться на файлы за пределами сайта. По этой причине инструмент IIS Lockdown, выпущенный Microsoft, блокирует этот эталонный метод, а Microsoft блокирует этот метод по умолчанию в IIS6.0 Windows Server 2003. Для таких включенных файлов, которых нет в этом каталоге, рекомендуется использовать этот безопасный метод ссылки:
<!--#include virtual="/inc/abc.asp"-->
Добро пожаловать на новые полезные исследования и обсуждения.