Câu trả lời ngắn: Nó không quan trọng.
cfscript
không xuất ra bất cứ điều gì trừ khi bạn gọi rõ ràng writeOutput() từ nó. Điều này bao gồm các hàm trong cfscript
cũng như bất kỳ mã cfscript
nào bên ngoài một hàm.
Điều này khác với cú pháp của thẻ CF, theo mặc định, đầu ra ít nhất khoảng trắng giữa các thẻ. Trong cfscript
, mọi văn bản bạn viết sẽ được biên soạn bởi công cụ CFML. trong thẻ CF, mọi văn bản bạn viết sẽ được ghi vào bộ đệm đầu ra và được gửi tới trình duyệt.
Câu trả lời dài: Cũng giống như không chỉ định thuộc tính đầu ra.
cfscript
khối không xuất ra bất kỳ thứ gì. Bất kỳ khối thẻ nào, trừ khi được bọc trong cfsilent
, hãy tạo khoảng trống đầu ra nếu không có gì khác. Có, ngay cả cffunctions làm, nhưng đầu ra được loại bỏ nếu thuộc tính đầu ra được đặt thành false.
Bản chất câu trả lời của Peter Boughton là chính xác. Nó không được bọc trong cfsilent
cũng không phải cfoutput
. Đầu ra không bị cấm, nhưng nó không xảy ra trừ khi bạn làm điều đó một cách rõ ràng.
Bạn luôn có thể kết hợp một thẻ dựa trên cffunction
với tập lệnh để tận dụng tối đa cả hai thế giới. Cái gì đó như...
<cffunction name="x" output="false" access="package">
<cfargument name="y" type="string" required="false" default="YY" />
<cfscript>
var someValue = y & "something";
writeOutput("test"); // this will not be written
return someValue;
</cfscript>
</cffunction>
này cho phép bạn chỉ định một đầu ra và truy cập vào thẻ cffunction
cũng như cho phép đối số là tùy chọn (mà bạn không thể làm qua cfscript
chức năng), sau đó điền vào cơ thể với cfscript, kể cả báo cáo var và hàm trả về.
Tất nhiên, đối với chức năng đó, nếu bạn loại bỏ các thuộc tính output
hoặc thay đổi nó để true
, nó sẽ đầu ra "test
" trước khi trở về.
Trong CF9, các hàm được định nghĩa trong cfscript có thể có các đối số tùy chọn. Xem [Xác định các thành phần và chức năng trong CFScript] (http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSE99A664D-44E3-44d1-92A0-5FDF8D82B55C.html). –
Đáng buồn thay, điều này không thực sự chính xác. Hãy tiếp tục và chạy một 'SerializeJSON()' trên một kết quả ORM trong một hàm cfscript và bạn sẽ thấy 3 dòng khoảng trắng. Trong 'cffunction' với' output = 'no'' không có khoảng trắng. – Nucleon
Sửa đổi - bạn có thể đặt đầu ra = "không" trên một hàm cfscript để làm hỏng hành vi này. – Nucleon