Help:Parser functions in templates/zh

当在模板参数中使用解析器函数时，可以使用一个管道符号（|）来提供一个默认值，会在没有参数填写时被使用. 在 #if 解析器函数中使用时，来自未定义参数的未扩展文本将解析为真，可能造成意想不到的结果.




 * 例 A:


 * 结果:




 * 列 B:


 * 结果:

具有当前空默认值的第二种用法（ ，例 B）通常是处理参数存在但仅由空值组成的情况的理想方式.



测试和传输未定义参数
要区分可能为空的参数和未指定的参数，请使用  和“不同的默认值”将其与自身进行比较. 默认值是什么并不重要，只要它们不同即可，因此通常选择较短的值. 以下所有例子都奏效：



In rare cases, a template behaves differently when a parameter is unspecified compared to when it is specified but empty. When this template is used by a wrapper template (which uses the same set of named parameters), one way to ensure undefined parameters remain undefined is as follows (the technique also works with numbered parameters):





receives a defined normal_parameter in all cases. When normal_parameter is defined but empty and when it is undefined,  receives an empty normal_parameter.

By contrast, the  receives a defined sensitive_parameter only when it is indeed defined; when sensitive_parameter is undefined, the   changes the parameter name to sensitive_parameterNULL. The suffixed parameter name must be meaningless to the  for this to work properly.



參見

 * Extension:Loops#forargs