2011-07-05 2 views
1

사소한 문제를 해결하기 위해 coldfusion을 더 잘 이해하려고합니다. 하지만 내 인생 내가 변수이다 #의 manufacturer_name 번호입니다이 이 ColdFusion 문에서 #은 무엇을 의미합니까?

<cfoutput query="manufactureList">#manufacturer_name#</cfoutput> 

내가이 manfatureList라는 이름의 쿼리를 참조 알고 의미를 찾을 수 있지만이었다 수없는 이유는 무엇입니까? # 기호로 묶여

답변

1

문자열이 경우이 쿼리 "manufacurelist"

3

#의 manufacturer_name 번호는 조회가 실행될 때 값이 생성된다는 것을 의미에서 열 이름을 언급하고, 변수를 나타내는 않습니다. 쿼리에서 manufacturer_name 필드가있을 수 있습니다.

제조업체 이름을 # 기호로 지정하면이 필드에 쿼리의 값이 채워짐을 의미합니다. 여기

은 예입니다

<cfquery name="qEmployee" datasource="cfdocexamples"> 
SELECT Emp_ID, FirstName, LastName, Salary FROM EMPLOYEE 
</cfquery> 
     <table bgcolor="CadetBlue" cellpadding="0" cellspacing="0"> 
    <tr bgcolor="DarkCyan"> 
     <td><b>Emp ID</b></td> 
     <td><b>First Name</b></td> 
     <td><b>Last Name</b></td> 
     <td><b>Salary</b></td> 
     </tr> 
    <cfoutput query="qEmployee"> 
      <tr> 
       <td>#Emp_ID#</td> 
       <td>#FirstName#</td> 
       <td>#LastName#</td> 
       <td>#Salary#</td> 
      </tr> 
     </cfoutput> 
    </table> 
1

또한, 그 쿼리에서 모든 컬럼에 쿼리 이름을 붙일 수있는 가장 좋은 방법은 (그리고 사실 모든 변수와 함께이 작업을 수행, 자신의 적절한 범위에 넣어).

코드를 효율적으로 만들뿐만 아니라 특정 변수의 출처를 알아 내려고 할 때 개발자가 장기적으로 쉽게 사용할 수있게 해줍니다.

대신 다음을 수행하십시오.

<cfoutput query="manufactureList">#manufactureList.manufacturer_name#</cfoutput> 
7

잘못 작성한 코드 블록을 사용하십시오.

질문에 대답하기 위해 해시 내부의 모든 것은 ColdFusion 변수입니다. 값을 출력 할 때 해시를 사용해야합니다.

게시자가 게시 한이 문구의 문제점은 개발자 이름이 manufacturer_name이 manufactureList 쿼리의 일부라고 가정하도록 남겨 뒀다는 것인데, 이것은 끔찍한 코딩 사례 일 수 있습니다.

  1. 가독성 및 유지 관리 가능성은 항상 두 가지 이유로 모든 변수의 범위를 지정해야합니다. 그들이이 일을했다면 아마 여기에 질문을 게시 할 필요가 없었을 것입니다.
  2. 범위 지정 변수는 ColdFusion이이 변수가 존재하는 범위를 파악하기 위해 ColdFusion에서 여러 범위를 탐색 할 필요가 없음을 의미합니다. 이로 인해 응용 프로그램의 성능이 향상됩니다. 일부 범위의 경우 변수 호출을 범위 지정하지 않으면 코드가 코드를 찾지 못하게됩니다. 여기에서는 쿼리 변수가 아니라 다른 구조 내부의 변수에 대해 설명합니다.