重設Go 模板範圍循環中的變數
在Go 模板範圍循環中,在循環外部聲明的變量則不會在每次迭代時重置。但是,在循環內重新宣告變數會建立一個僅在該迴圈內作用域的新變量,可能會導致意外行為。
考慮以下範例:
這裡, $prevDate 似乎是在每次循環迭代開始時重置為空字串。然而,這並不是由於重置機製造成的。相反,在循環內重新宣告一個新變數 $prevDate,覆蓋外部變數。
解
要避免此問題,重要的是使用正確的方法範圍循環中變數的作用域。有兩種建議的解決方案:
解決方案1:使用註冊函數
您可以註冊一個接受循環索引並從上一個循環返回所需值的函數迭代。例如:
在範本中,您可以像這樣呼叫函數:
解決方案2:使用Posts 方法
或者,您可以為Posts 類型新增一個傳回前一個日期的方法。例如:
在您的範本中,您可以存取以下方法:
以上是如何正確重置 Go 模板範圍循環中的變數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!