Что ж, довольно интересно посмотреть, как это работает в фоновом режиме, заглянув в cfusion.jar
. Так как я на самом деле не Java-человек, не совсем уверен, что моя интерпретация верна или нет. Позвольте мне попробовать.
Внутри cfscript
любая функция, которая начинается с cf
, рассматривается как тег ColdFusion вместо функции.
То, что я вижу, это как cfparam
,Вы также можете использовать больше функций (и больше).
cfquery
cfsavecontent
cfinclude
cfthrow
cfabort
Я был немного удивлен, увидев, что следующий синтаксис работает в ColdFusion (я не уверен, есть ли какая-либо документация, которая детализирует этот синтаксис).
<cfscript>
cfquery(name="test", datasource=application.dsn){
writeOutput('select * from user where userid = ');
cfqueryparam(value="1", cfsqltype='integer');
};
cfdump(var=test);
</cfscript>
Таким образом, чтобы точно так же, как вы не можете определить тег ACF без указания имени для атрибута, любая функция с <cfscript>
, начинающаяся с имени тега coldfusion, будет нуждаться в именованных аргументах.
Скорее всего, это было реализовано для CF9 или более поздней версии, чтобы получить поддержку cfscript
. Более поздние версии имеют свои независимые реализации каждого тега без префикса cf
.
как
param name="test" default="";
savecontent variable="errortext" {
writeOutput("Application: #test#");
}