Давайте начнем с предположения, что вы не говорите о тегах cfoutput, поэтому ответ всегда, в другом месте вашего кода, если вы находитесь внутри кавычек, тогда вам нужно использовать # символов, если можно на самом деле ввести значение, которое будет использоваться ... поэтому, если вы используете тег cfloop, устанавливающий атрибут 'to', вы можете легко ввести 6, но если вы хотите использовать переменную, вам нужно использовать символы #. Теперь, если вы в теге cfloop устанавливаете параметр запроса, вы не можете на самом деле ввести запрос в этот атрибут, нет способа ввести запрос, поэтому не нужно никаких символов #.
Аналогично в теге cfdump вы можете ставить статический текст, поэтому, если вы хотите сбросить содержимое переменной, вам нужно будет использовать символ #. Эта проблема обычно самокорректируется, но я чувствую вашу боль, ваши ученики, вероятно, разочарованы тем, что нет подхода «ВСЕГДА ИСПОЛЬЗОВАТЬ ИХ» или «НИКОГДА НЕ ИСПОЛЬЗУЙТЕ ИХ» ... К сожалению, это не так, единственное, что это правда, только один путь внутри кавычек будет правильным. Поэтому, если он не работает, посмотрите на это много и долго и подумайте: «Могу ли я ввести это значение вместо использования значения, содержащегося в этой переменной?» Если ответ отрицательный, тогда символы # не нужны, в противном случае ваш символ # будет включен.
Для изучения правил требуется немного времени. Но на самом деле вам не нужно много использовать его, и я бы рекомендовал попытаться выяснить, когда вам действительно нужно его использовать, и не используйте его, когда вам это не нужно. См. Мой ответ ниже. – yfeldblum