ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
# 动态模板变量 在这个页面中: * [什么是模板变量](#什么是模板变量) * [声明模板变量](#声明模板变量) * [创建和编辑模板变量](#创建和编辑模板变量) * [预定义模板变量](#预定义模板变量) * [在模板变量中使用预定义方法](#在模板变量中使用预定义方法) ## <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)