變數邊界補充說明

變數預設:#set ($valok = "hello foxdevelop")

變數邊界 ${}. 存取差異解析

程式碼渲染結果原理說明
$valokhello foxdevelop基礎變數輸出
$valok.comhello foxdevelop.comVelocity 嘗試呼叫 valok 物件的 cn 屬性/方法;字串沒有 cn 方法,直接輸出變數加上後綴
${valok}.comhello foxdevelop.com{} 鎖定變數邊界,變數 valok 渲染完畢後再拼接文字 .com(推薦拼接寫法)
$!valok.comhellofoxdevelop.com$! 靜默引用:變數存在時等同 $valok;變數不存在輸出空字串,不會直接顯示 $xxx
${valok.com}空白嘗試讀取 valok.com 屬性,字串沒有 com 方法或屬性,視為變數不存在;要輸出空值請寫 $!{valok.com}


${valok}.cn ✅ 變數 + 後綴拼接
${valok.cn} ❌ 存取物件 valok 底下的 cn 屬性

單引號 / 雙引號 & 變數黏連

程式碼渲染結果原理說明
what$valokwhathello foxdevelop直接拼接,Velocity 自動辨識變數邊界
what$"valok"what$”valok”❌語法錯誤,$ 後面不能緊接引號,無法解析變數
what"$valok"what”hello foxdevelop引號僅為普通文字,模板內引號不會觸發字串解析,變數正常渲染
what'$valok'what’hello foxdevelop同上,單引號屬於一般文字字元
$valokwhat$valokwhat❌無法辨識變數!Velocity 將 valokwhat 視為完整變數名稱,找不到就直接輸出原始文字
${valok}whathello foxdevelopwhat✅大括號鎖定邊界,解決變數與文字黏連問題

總結

  1. 變數與文字黏連務必使用 ${變數名}
    錯誤:$valokwhat;正確:${valok}what
  2. 拼接後綴文字:${valok}.cn 不要寫成 ${valok.cn}
  3. $!變數 靜默引用:變數不存在時輸出空白,不會印出 $xxx
  4. 模板 HTML 裡的單/雙引號只是普通字元只有 #set 賦值內部才會區分單引號(不解析變數)、雙引號(解析變數)
#set($a = "$valok") // 雙引號:解析變數,a=hello bamn
#set($a = '$valok') // 單引號:不解析變數,a=$valokCode language: PHP (php)

變數邊界補充說明

Previous:

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *