# 动态模板变量
在这个页面中:
* [什么是模板变量](#什么是模板变量)
* [声明模板变量](#声明模板变量)
* [创建和编辑模板变量](#创建和编辑模板变量)
* [预定义模板变量](#预定义模板变量)
* [在模板变量中使用预定义方法](#在模板变量中使用预定义方法)
## <span id='什么是模板变量'>什么是模板变量</span>
在动态模板中**模板变量**允许用户输入。当一个模板展开后,模板出现在编辑器中作为**输入字段**。
## <span id='声明模板变量'>声明模板变量</span>
模板中的变量按以下格式声明:
```VTL
$<variable_name>$
```
## <span id='创建和编辑模板变量'>创建和编辑模板变量</span>
变量通过表达式定义,并且可以接受默认值。
表达式可能包含以下基础类型结构:
* 两个引号中的字符串常量
* 动态模板中定义的另一个变量的名字
* 预定义函数及可能的参数
模板变量可以在[编辑模板变量对话框](/参考/设置参数对话框/编辑器/动态模板/编辑模板变量对话框.md)中编辑,这包含一个完整的可用函数列表。参见本页下方的[预定义方法列表](#在模板变量中使用预定义方法)
## <span id='预定义模板变量'>预定义模板变量</span>
PhpStorm提供两个**预定义动态模板变量**:`$END$`和`$SELECTION$`。
你不能编辑预定义动态模板变量`$END$`和`$SELECTION$`。
* `$END`表明光标的位置在展开的模板之后。例如,模板`return $END$;`将展开到:
```
return ;
```
光标位置在分号之前。
* `$SELECTION$`用在**环绕模板**中并且用来代表要被包围的代码片段。在模板展开之后,被选中的文本将在模板中被围绕。
例如,如果你在代码中选择`EXAMPLE`并调用`"$SELECTION$"`模板(通过分配的缩写或按下`Ctrl+Alt+T`并从列表中选择目标的模板),PhpStorm将用两个引号包围选中的部分,就像下面:
```
"EXAMPLE"
```
## <span id='在模板变量中使用预定义方法'>在模板变量中使用预定义方法</span>
|**Item**|**Description**|
|---|---|
|`camelCase(String)`|返回作为参数传递的字符串,转换为驼峰式写法。例如`my-text-file`/`my text file`/`my_text_file`将被转换为`myTextFile`|
|`capitalize(String)`|将作为参数传递的名字的首字母大写|
|`capitalizeAndUnderscore(sCamelCaseName)`|将作为参数传来的驼峰式名字转为首字母大写,并在单词重建插入下划线。例如,如果传来的参数是`FooBar`,那么函数返回`FOO_BAR`。|
|`classNameComplete()`|这个表达式用来在变量位置替换[类名称](/如何使用/常规指南/代码补全/README.md)|
|`clipboard()`|返回系统剪贴板的内容|
|`snakeCase(String)`|从蛇形字符串返回驼峰式写法的字符串。例如,如果传来的参数字符串是`foo_bar`,函数将返回`fooBar`。|
|`complete()`|这个表达式在变量位置代替行使代码补全|
|`completeSmart()`|这个表达式在变量位置代替行使只能类型补全|
|`date(sDate)`|用指定格式返回当前系统日期。<br/>默认的,当前日期被返回为系统默认格式。然而,如果你用两个引号指定日期格式,日期将被呈现为指定格式:<br/>![指定日期格式](http://image.jellychen.cn/uploads/2016/11/date_format.png)|
|`decapitalize(sName)`|用相应的小写字母替换作为参数传递的名字的首字母。|
|`enum(sCompletionString1,sCompletionString2,...)`|用逗号分隔的字符串建议作为模板调用时的完成列表|
|`escapeString(sEscapeString)`|避开指定的字符串|
|`expectedType()`|返回整个模板期望的类型。这是有道理的,如果模板在正确的位置展开,在返回之后,等等|
|`fileName(sFileName)`|返回带扩展名的文件名|
|`fileNameWithoutExtension()`|返回文件名不要扩展名|
|`firstWord(sFirstWord)`|返回作为参数传递的字符串的第一个单词|
|`lineNumber()`|返回当前行号|
|`lowercaseAndDash(String)`|返回作为参数传递的字符串以用破折号分隔的小写形式。例如,字符串`MyExampleName`转换为`my-example-name`|
|`snakeCase(sCamelCaseText)`|从驼峰式写法的字符串返回蛇形字符串|
|`spaceSeparated(String)`|传递来的驼峰式字符串转换为空格分隔的单词。例如,如果川里来的字符串参数是`fooBar`,那么返回值就是`foo bar`|
|`time(sSystemTime)`|放回当前系统时间。|
|`timestamp()`|这个参数没有参数,返回的是1970-1-1到现在的毫秒时间。参考文章[Ubix time](https://en.wikipedia.org/wiki/Unix_time)|
|`underscoresToCamelCase(sCamelCaseText)`|从下环线分隔的字符串转换为驼峰式写法,例如,如果传来的参数是`foo_bar`,那么函数返回值就是`fooBar`|
|`underscoresToSpaces(sParameterWithSpaces)`|从下环线分隔的字符串转换为空格分隔式写法|
|`user()`|返回当前用户名称|
|`JsArrayVariable`|返回当前JavaScript数组名称|
|`jsClassName()`|返回JavaScript类名称|
|`jsComponentType`|返回当前JavaScript组件类型|
|`jsMethodName()`|返回当前JavaScript方法名称|
|`jsQualifiedClassName`|返回当前JavaScript类的完整名称|
|`jsSuggestIndexName`|返回索引的建议名称|
|`jsSuggestVariableName`|返回变量的建议名称|
# 另请参阅:
规程:
* [创建和编辑模板变量](/如何使用/常规指南/动态模板/创建和编辑模板变量.md)
参考:
* [编辑模板变量对话框](/参考/设置参数对话框/编辑器/动态模板/编辑模板变量对话框.md)
- 前言
- 初见PhpStorm
- 系统要求
- 安装和启动
- 注册PhpStorm
- 快速开始引导
- 你不能错过的:快捷键
- 第一步
- 创建和运行你的第一个PHP项目
- 创建和运行你的第一个Web项目
- 如何使用
- 常规指南
- 用户界面引导
- 欢迎界面
- 菜单和工具栏
- 导航栏
- 状态栏
- PhpStorm视图模式
- 设置背景图片
- PhpStorm编辑器
- 基础编辑规程
- 在编辑器中打开和重新打开文件
- 在编辑器中关闭文件
- 在编辑器中选择文本
- 剪切复制粘贴
- 在PhpStorm和资源管理器之间复制粘贴
- 在编辑器中使用拖放
- 注释和取消注释代码块
- 保存和撤销更改
- 撤销和重做更改
- 透镜模式
- 多插入符
- 草稿
- 在编辑器中缩放
- 高级编辑规程
- 添加删除和移动代码元素
- 添加编辑器到收藏夹
- 改变缩进
- 代码折叠
- 基础
- 代码折叠方法
- 折叠预定义和自定义区域
- 折叠菜单的命令和关联的快捷键
- 指定代码折叠偏好
- 查看折叠的代码片段
- 使用代码折叠注释
- 查看当前插入符位置
- 格式化代码
- 切换可写状态
- 切换大小写
- 高亮括号
- 拼写检查
- 连接行和文字
- 分割字符串为多行
- 在表格格式编辑CSV和类似文件
- 在编辑器中使用宏
- 录制宏
- 回放宏
- 编辑宏
- 绑定宏到快捷键
- 管理编辑器标签页
- 配置编辑器标签行为
- 在不同标签页之间跳转
- 锁定和解锁标签页
- 分割和合并编辑窗口
- 分离编辑器标签
- 使用标签组编辑多文件
- 改变编辑器标签头的位置
- 编辑器标签排序
- 使用TODO
- 定义TODO模式和过滤器
- 创建TODO项
- 查看TODO项
- PhpStorm工具窗
- 操作工具窗
- 指定工具窗的外观设置
- 在工具窗快速搜索
- 查看模式
- 管理项目收藏夹
- 配置项目和IDE设置
- 访问默认设置
- 访问设置
- 配置代码风格
- 配置颜色和字体
- 为控制台配置配色方案
- 配置项目文件编码
- 配置单独的文件编码
- 配置快捷键
- 配置行分隔符
- 配置菜单和工具栏
- 配置快速访问列表
- 配置区块和文件颜色
- 配置第三方工具
- 复制代码风格设置
- 创建和注册文件类型
- 导入和导出设置
- 分享你的IDE设置
- 在方案之间切换
- 切换引导JDK
- 配置项目结构
- 配置根目录
- 在根目录中配置文件夹
- 在项目中排除文件
- 创建和管理项目
- 从头创建新项目
- 从现有代码导入项目
- 从本地代码创建项目
- 从下载的文件创建项目
- 从框架模板生成项目
- 使用Yeoman生成器创建项目
- 打开、重新打开和关闭项目
- 打开多个项目
- 保存项目为模板
- 清空系统缓存
- 重命名项目
- 文件和代码模板
- 解析指令
- 文件模板变量
- 创建和编辑文件模板
- 动态模板
- 简易、参数化和环绕模板
- 动态模板缩写
- 动态模板变量
- 动态模板组
- 创建和编辑动态模板
- 创建和编辑模板变量
- 分享动态模板
- 填充项目
- 创建目录
- 从模板创建文件
- 创建空文件
- 创建PHP类接口和特性
- 生成代码
- 使用动态模板创建代码结构
- 使用环绕模板创建代码结构
- 生成Getter和Setter
- 打开和移除语句
- 包住标签,应用环绕模板的例子
- 使用排列规则重新整理代码
- 用语言结构环绕代码块
- 使用后缀模板
- 代码补全
- 基本代码补全:补全名称和关键字
- 智能类型代码补全:基于输入信息补全代码
- 补全语句
- 补全路径
- 补全标点
- 补全标签名称
- 展开单词
- 使用建议列表
- 创建和优化导入
- 创建导入
- 优化导入
- 代码检查
- 访问检查设置
- 分析检查结果
- 配置检查严重性
- 改变当前文件高亮级别
- 自定义配置文件
- 禁用和启用检查
- 改变区块顺序
- 导出检查结果
- 解决问题
- 抑制检查
- 运行检查
- 通过名称运行检查
- 离线运行检查
- 自动应用快速修复
- 意向动作
- 应用意向动作
- 配置意向动作
- 禁用意向动作
- 查看页面Web内容
- 配置浏览器
- 在浏览器中预览页面Web内容
- 在编辑器中查看Web页面的HTML代码
- 查看参考信息
- 查看定义
- 查看内联文档
- 查看外部文档
- 查看方法参数信息
- 浏览源代码
- 使用书签跳转
- 管理书签
- 在文件和工具窗之间跳转
- 在IDE组件之间跳转
- 在方法和标签之间跳转
- 在测试和测试主题之间跳转
- 跳转到动作
- 跳转到大括号
- 根据名称跳转到类、文件或符号
- 跳转到自定义折叠区域
- 跳转到符号的声明或类型声明
- 跳转到超级方法或实现
- 跳转到文件路径
- 跳转到行
- 跳转到下一个或上一个更改
- 跳转到下一个或上一个错误
- 跳转到近期文件
- 跳转到已浏览项目
- 使用导航栏跳转
- 使用结构视图跳转
- 使用面包屑跳转
- 搜索代码
- 在文件中查找替换文本
- 在项目中查找替换文本
- 查找引用
- 在项目中查找引用
- 在当前文件查找引用
- 高亮引用
- 查看符号引用
- 查看近期查找引用
- 在插入符处查找词语
- 使用搜索结果
- 搜索全部
- 结构搜索和替换
- 搜索模板
- 结构搜索和替换-常规步骤
- 创建和编辑搜索模板
- 结构搜索和替换示例
- 重构代码
- 分析应用程序
- 运行调试配置
- 运行
- 调试
- 测试
- 代码覆盖率
- 服务端作业:拷贝文件
- 使用本地历史
- 版本控制概念
- 管理插件
- 管理任务和内容
- 使用命令行工具
- 使用文件观察者
- 使用嵌入式本地终端
- 从命令行启动PhpStorm特性
- 使用后台任务
- 使用语言注入
- 比较文件和文件夹
- 选择文件或文件夹
- 在PhpStorm和文件管理器之间复制粘贴
- 教程
- 参考
- 获取帮助