This good question came in today:
On this page (link) are the release notes for ColdFusion MX 7. In there, there is a statement that says "CFCs can now return arrays of CFC instances." under the section of 'ColdFusion Components (CFCs)'. Now how do I accomplish this? Yes, I know I can create return array that contains an instance of cfc's in each index, but we could do that with MX 6. So what is different about this in MX 7 and how do we invoke this feature? And, can you think of any good situations where this can be used?
The note is a bit unclear. You have always been able to return an array of components, however, your return type had to be set to array (or any of course). However - you can now be more precise and set a return type of:
So consider this example:
<cffunction name="test" access="remote" returntype="apple"> <cfreturn createObject("component", "apple")> </cffunction> <cffunction name="testarray" access="remote" returntype="apple"> <cfset var result = arrayNew(1)> <cfset result = createObject("component", "apple")> <cfset result = createObject("component", "apple")> <cfreturn result> </cffunction>
The first method returns just one apple. The second method returns an array of apples. Unfortunately, you can't do this will built-in types. In other words, the following is not supported: returnType="numeric".
So why would you use it? I don't know. It's entirely up to your business logic. If it makes sense to return an array of components, then use it. I'd recommend using foo over array since foo is more specific.