Extension:Variables/zh

变量（Variables）扩展允许您在一个页面定义变量，然后在同样的页面或包括的模板变化它的值，可能是通过表达式在旧值中赋予的值等.

它很像模板，只是占用内存非常少并且作用只能在1个页面，所以你可以在1个页面使用很多个变量而不需要用大数量的模板在这个wiki缓慢下来. 结合解析器函数组件以达到最好的结果.

将值specifiedvalue分配给（已存在或由此引入的）变量variablename.


 * 示例： 使iconwidth=25

与 完全相同，但会打印受影响的值.


 * 例如： making iconwidth = 

变量variablename的值由. 产生 如果未定义，会产生空字符串，不会抛出错误.

变量未定义或为空时可以定义值：



相当于：

但这样更加简短. 在版本2.0之前，默认值会自动展开. 从版本2.0开始，默认值只会在真正用到时展开.

值可用于解析器函数.


 * 如果变量已经定义返回1. 如果没有定义则返回空.

它支持第二个和第三个参数来替换这些值.

这相当于：



但它更短，更好地安排. 在2.5版之前，两者都是扩展的. 从2.5以后的if和else值只有在实际输入案例时才会展开.

变量2.0中引入了实验新功能. 此函数将输出变量在页面渲染结束时具有的最后一个最后一个值. 当然，在解析器遍历整个wiki标记之后将插入该值，因此该函数不能用于其他函数，期望正在使用正确的值. 例：

如果变量在最终页面呈现阶段不存在或者其值为空字符串，则将使用默认值. 默认值将在使用函数的位置展开，因此即使不需要参数，也会扩展参数.

例子
解析器函数扩展必须已安装以使用#expr.

计算 ： 加入一个至“n”：

兼容性
下面列出了最近MediaWiki版本的Variables扩展的推荐版本. 较旧版本的扩展可能也可以正常工作，但未针对新的MediaWiki版本进行测试.

Alternatives
As this extension will not be enabled for wikis run by the Wikimedia Foundation (WMF)  , here are some alternatives:
 * Create a new template and pass all parameters and the value you want to use as a variable to it. This will work until you reach the expansion depth limit.
 * Don't use variables, instead duplicate the information you need as a variable. If that information is aquired by an expensive template call, performance may suffer. This will work until you reach the node count limit.
 * "Lua" (please add links/instructions to explain how Lua can help)

参见

 * Extension:DynamicFunctions##arg:
 * Extension:MyVariables - 在MediaWiki创建新变量
 * Extension:Loops - 提供执行循环的解析器函数
 * Extension:Arrays - Create an array and provide array functions（比如搜索、分离、排序）and set operations (such as intersect, union and diff)
 * Extension:HashTables - 用于处理MediaWiki的hash table的新解析器函数
 * Extension:HashTables - 用于处理MediaWiki的hash table的新解析器函数