2012-06-26 22 views
5

Tôi gặp sự cố với mã cfml của mình. Chức năng ListAppend() dường như không hoạt động.ListAppend() không hoạt động?

Đây là mã trong trang .cfm tôi:

<cfset fruitList="apple, orange, banana"> 

<cfoutput> 
    fruitList before: #fruitList#<br> 
</cfoutput> 

<cfset temp = ListAppend(fruitList, "kiwi")> 
<cfoutput> 
    fruitList after: #fruitList#<br> 
</cfoutput> 

Nhưng tôi luôn nhận được kết quả này:

fruitList trước: táo, cam, chuối

fruitList sau: táo, cam, chuối

Tương tự với ListPrepend()ListInsertAt(). Lý do tại sao điều này xảy ra?

Mọi trợ giúp đều được đánh giá cao.

+5

bạn cần phải sử dụng '' –

+9

Khi bạn chạy vào câu hỏi về hành vi chức năng, nó luôn luôn là tốt để [kiểm tra tài liệu] (http: // help.adobe.com/en_US/ColdFusion/9.0/CFMLRef/WSc3ff6d0ea77859461172e0811cbec22c24-6d71.html) trước tiên. Vì nó sẽ trả lời câu hỏi của bạn ngay lập tức;): 'ListAppend' -" Trả về Bản sao của danh sách, với [new] * value * được thêm vào " – Leigh

+1

Yep, không giống như họ hàng' ArrayAppend() 'và' StructAppend() ', 'ListAppend()' không thay đổi đối số đầu tiên bằng tham chiếu. –

Trả lời

29

listAppend() trả về danh sách mới (danh sách là gì, nhưng chuỗi, mà ColdFusion đi theo giá trị) vì vậy để cho bạn thấy giá trị nối, bạn sẽ cần phải sử dụng:

<cfset fruitlist = ListAppend(fruitList, "kiwi") /> 
+1

Tôi không nhận thấy điều đó. Cảm ơn nhiều. – Mohsin

8

Hãy thử

<cfset fruitList="apple, orange, banana"> 

<cfoutput> 
fruitList before: #fruitList#<br> 
</cfoutput> 

<cfset fruitList=ListAppend(fruitList, "kiwi")> 

<cfoutput> 
fruitList after: #fruitList#<br> 
</cfoutput> 

Theo danh sách cfquickdocsGửi lại danh sách có giá trị được thêm vào nó. http://cfquickdocs.com/#ListAppend

Tôi hy vọng điều này sẽ hữu ích.

6

Thực ra, trong ví dụ của bạn, bạn đang thêm vào danh sách tốt. Tuy nhiên, bạn đang tạo một danh sách mới, "tạm thời" và sao chép nội dung của danh sách trái cây vào đó và sau đó bổ sung kiwi.

<cfset temp = ListAppend(fruitList, "kiwi")> 

Nếu bạn đổ danh sách tạm thời, bạn sẽ thấy danh sách mà bạn muốn xem.

<cfdump var="#temp#">