2015-07-10 102 views
1

以下是test.cfm頁:cfm頁面中局部變量的範圍?

<cfscript> 
     Local.myString = "Hello"; 
</cfscript> 

什麼是myString範圍有多大?它會在cfm頁面的其他部分中顯示,還是在<cfscript>標籤之間顯示?

回答

7

在函數之外,該分配設置變量variables.local.myString,並且變量範圍的範圍規則已有詳細記錄:About scopes: variables。來自文檔:

用 cfset和cfparam標記創建的任何類型變量的默認範圍。變量作用域變量僅在其創建頁面上有 以及任何包含的頁面(也可參見 調用範圍)。在CFC中創建的變量作用域變量爲 僅可用於組件及其函數,而不適用於實例化組件或調用其功能的頁面 。

本地範圍同樣是在該頁面上的文檔,順便說一句。

諮詢文檔始終是一個很好的地方開始時,有關於語言的問題。

+0

所以我可以把'Local.'離開,只使用'myString =「Hello」;'創建變量'variables.myString'? – Roland

+1

這是正確的。 – TRose

+3

儘管技術上「變量」作用域是可選的,但最好明確指定它。主要是爲了更高的精度。如果省略範圍,則將其留給CF來確定哪個範圍包含指定的變量名稱(請參閱「評估非範圍變量」)。這通常是不可取的。在存在範圍衝突的情況下,甚至可能會導致意想不到的結果。另外,顯式確定所有變量的範圍只是使代碼更直觀IMO。 – Leigh