我有一个安装了Semantic MediaWiki扩展的MediaWiki站点。我想测试字符串是否为空。为此我做了:
{{#if: {{{transcript.lncrna}}} | Yes | No}}
显然,{{{transcript.lncrna}}}是空的,它什么都没有。但是,解析器函数#if
告诉我是答案。
有什么问题?
答案 0 :(得分:6)
当涉及MediaWiki解析器函数时,变量为空,变量未定义are two different things。在您的情况下{{{transcript.lncrna}}}
很可能没有定义。然后,MediaWiki将按照你试图写出文本“{{{transcript.lncrna}}}”来对待它,当然,这会使if语句返回true。
要检查参数是否为空,您需要添加一个空的默认值,编写{{{transcript.lncrna|}}}
(注意水平条):
{{#if: {{{transcript.lncrna|}}} | Yes | No}}
这是一个具有不同可能性的表
value of {{{param}}}: undefined | nothing | whitespace | something
--------------------------------------------------------------------------------
{{#if: {{{param|}}} | Yes | No}} | No | No | No | Yes
{{#if: {{{param}}} | Yes | No}} | Yes | No | No | Yes