打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

目前wiki关闭了自行注册账号的功能,如需注册账号,请查阅Help:注册账号

模板文档

此模板用于其他模板内, 它采用任意数量的参数, 并返回第一个被定义且非空的参数。如果未找到, 则不返回任何内容。典型用法如下:

{{If empty |{{{logo|}}} |{{{image|}}} |{{{picture|}}} |default.svg}}

("如果 {{{logo|}}} 有值就返回{{{logo|}}}; 否则返回 {{{image|}}} , 如果它有值的话; 否则返回 {{{picture|}}} , 如果它有值的话; 否则返回 "default.svg".")

基本原理

MediaWiki参数默认函数不会为空参数返回默认值。也就是当这样写时: {{template|logo=}} , 参数{{{logo|default.svg}}} 不会返回 "default.svg"。

单个参数的通常解决方法是:

{{#if:{{{logo|}}} |{{{logo}}} |default.svg}}
( "如果 {{{logo}}} 有值, 就返回它, 否则返回 "default.svg". " )

但是, 当要检查几个参数时, 这变得很复杂:

{{#if:{{{logo|}}} |{{{logo}}} |{{#if:{{{image|}}} |{{{image}}} |{{#if:{{{picture|}}} |{{{picture}}} |default.svg}} }} }}
("如果 {{{logo}}} 有值, 返回 {{{logo}}}; 否则如果 {{{image}}} 有值, 返回 {{{image}}}; 否则如果 {{{picture}}} 有值, 返回 {{{picture}}} ; 否则返回 "default.svg".")

在这些情况下, {{if_empty}}产生更简单的语法 (如上所述) :

{{if empty |{{{logo|}}} |{{{image|}}} |{{{picture|}}} |default.svg}}

管道化

与{{if empty}}一起使用的参数必须通过管道符传递 [即, 包括竖线 (管道) 符号 ( "|" ) 作为尾随字符] , 以免将空或未定义的参数视为文本并错误地返回。因此, 例如{{{logo|}}}, {{{image|}}}{{{picture|}}}而非{{{logo}}}, {{{image}}}和以上示例中的{{{picture}}}

例子

代码 结果
{{if empty}} 返回空字串符。
{{if empty|one}} one 返回已定义且不为空的第一个参数。
{{if empty|one|two}} one
{{if empty|one|two|three|four}} one
{{if empty||two}} two
{{if empty||two|three|four}} two
{{if empty||||||||||ten}} ten 与以前的版本不同,此模板不再受9个参数的限制。
{{if empty}} 唯一的参数为空或未定义, 因此返回空字符串。
{{if empty||||}} 返回空字符串。
{{if empty|{{{1|}}}|{{{2|}}}|three}} three
{{if empty|{{{1}}}|{{{2}}}|three}} {{{1}}} 前两个参数 ( "1" 和 "2" ) 的名称后面没有管道字符, 因此其中第一个以文本形式返回 ( "{{{{1}}}" ) 。
{{if empty|{{{logo|}}}|two}} two
{{if empty|{{{logo}}}|two}} {{{logo}}} 参数名称 "logo" 后面没有管道符, 因此返回文本 "{{{logo}}}" 。
{{if empty|p=q}} 模板将其接收的参数标识为参数1到9, 而不使用诸如 "p" 之类的名称。

脚注