Template:If empty
- Acèh
- Afrikaans
- አማርኛ
- Anarâškielâ
- Аԥсшәа
- العربية
- Արեւմտահայերէն
- Arpetan
- অসমীয়া
- Asturianu
- Avañe'ẽ
- Авар
- Azərbaycanca
- تۆرکجه
- Basa Bali
- বাংলা
- Banjar
- 閩南語 / Bân-lâm-gí
- Basa Banyumasan
- Беларуская
- Беларуская (тарашкевіца)
- भोजपुरी
- Bikol Central
- Български
- Boarisch
- Bosanski
- Буряад
- Català
- Чӑвашла
- Čeština
- Chavacano de Zamboanga
- Chi-Chewa
- ChiShona
- Corsu
- Cymraeg
- Dagbanli
- Dansk
- الدارجة
- Deutsch
- ދިވެހިބަސް
- Eesti
- Ελληνικά
- Español
- Esperanto
- Euskara
- فارسی
- Føroyskt
- Français
- Fulfulde
- Gaeilge
- Galego
- ГӀалгӀай
- 贛語
- Gĩkũyũ
- ગુજરાતી
- गोंयची कोंकणी / Gõychi Konknni
- Gungbe
- 客家語 / Hak-kâ-ngî
- Хальмг
- 한국어
- Hausa
- Hawaiʻi
- Հայերեն
- हिन्दी
- Hrvatski
- Igbo
- Ilokano
- Bahasa Indonesia
- Ирон
- IsiXhosa
- Íslenska
- Jawa
- ಕನ್ನಡ
- ქართული
- Kaszëbsczi
- Қазақша
- Kongo
- Kreyòl ayisyen
- Kurdî
- Кыргызча
- Ladin
- Latgaļu
- Latina
- Latviešu
- Lëtzebuergesch
- Лезги
- Lietuvių
- Li Niha
- Luganda
- Magyar
- Madhurâ
- मैथिली
- Македонски
- മലയാളം
- Malti
- Māori
- मराठी
- مصرى
- ဘာသာမန်
- مازِرونی
- Bahasa Melayu
- Minangkabau
- 閩東語 / Mìng-dĕ̤ng-ngṳ̄
- Mirandés
- Монгол
- မြန်မာဘာသာ
- Na Vosa Vakaviti
- Nederlands
- नेपाली
- नेपाल भाषा
- 日本語
- Нохчийн
- Norsk bokmål
- Norsk nynorsk
- Novial
- Occitan
- ଓଡ଼ିଆ
- Oʻzbekcha / ўзбекча
- ਪੰਜਾਬੀ
- Pangasinan
- پنجابی
- Papiamentu
- پښتو
- ភាសាខ្មែរ
- Polski
- Português
- Română
- Русиньскый
- Русский
- Gagana Samoa
- संस्कृतम्
- Scots
- Shqip
- සිංහල
- Simple English
- سنڌي
- Slovenčina
- Slovenščina
- Soomaaliga
- کوردی
- Српски / srpski
- Srpskohrvatski / српскохрватски
- Sunda
- Suomi
- Svenska
- Tagalog
- தமிழ்
- Taclḥit
- Taqbaylit
- Татарча / tatarça
- တႆး
- తెలుగు
- ไทย
- Тоҷикӣ
- ᏣᎳᎩ
- Tshivenda
- ತುಳು
- Türkçe
- Удмурт
- Українська
- اردو
- Vèneto
- Tiếng Việt
- Volapük
- Wayuunaiki
- 文言
- Winaray
- 吴语
- Yorùbá
- 粵語
- Zazaki
- 中文
- Batak Toba
- Kadazandusun
- Kumoring
- ရခိုင်
- Руски
- ꠍꠤꠟꠐꠤ
- ᥖᥭᥰ ᥖᥬᥲ ᥑᥨᥒᥰ
Changes to it can cause immediate changes to the Wikipedia user interface.
To avoid major disruption and server load, any changes should be tested in the template's /sandbox or /testcases subpages, or in your own user subpage. The tested changes can be added to this page in a single edit. Please discuss changes on the talk page before implementing them.
This template is used inside other templates. It takes any number of parameters and returns the first found to be defined and non-empty. If none is found, nothing is returned. By writing {{if empty|a|b|c}} instead of {{#if:a|a|{{#if:b|b|c}}}}, expression a and b do not have to be repeated and evaluated twice. The template provides a fallback order, similar to a try catch based "It is easier to ask for forgiveness than permission" (EAFP) programming style.
Typical usage is like this:
{{If empty |{{{logo|}}} |{{{image|}}} |{{{picture|}}} |default.svg}}- — Return {{{logo|}}} if it has a value; else {{{image|}}} if it has a value; else {{{picture|}}} if it has a value; else return "default.svg".
This returns the first of the parameters logo, image and picture that is defined and non-empty, otherwise "default.svg".
Rationale
The MediaWiki parameter default function doesn't return the default value for empty parameters. That is, {{{logo|default.svg}}} does not return "default.svg" if the template was called like this: {{template|logo=}}.
The usual workaround for a single parameter is:
{{#if:{{{logo|}}} |{{{logo}}} |default.svg}}- — If {{{logo}}} has a value, return it, else return "default.svg".
But this becomes complex when several parameters are to be checked:
{{#if:{{{logo|}}} |{{{logo}}} |{{#if:{{{image|}}} |{{{image}}} |{{#if:{{{picture|}}} |{{{picture}}} |default.svg}} }} }}- — If {{{logo}}} has a value, return it; else if {{{image}}} has a value, return that; else if {{{picture}}} has a value, return that; else return "default.svg".
In these cases, {{if empty}} produces the simpler syntax (as above):
{{if empty |{{{logo|}}} |{{{image|}}} |{{{picture|}}} |default.svg}}
Piping
Parameters used with {{if empty}} must be piped – i.e. include the vertical bar (pipe) symbol (" | ") as a trailing character – so that empty or undefined parameters aren't treated as text and returned incorrectly. Hence, for example, {{{logo|}}}, {{{image|}}} and {{{picture|}}} rather than {{{logo}}}, {{{image}}} and {{{picture}}} in the above examples.
Examples
{{if empty}} Returns an empty string.{{if empty|one}} one Returns the first parameter that is defined and not empty.{{if empty|one|two|three|four}} one {{if empty||two}} two The first parameter is empty/undefined, so is passed over.{{if empty||two||four}} two {{if empty||||||||||ten}} ten Unlike in previous versions, this template is no longer limited by 9 parameters.{{if empty|}} The only parameter is empty or undefined, so the template returns an empty string.{{if empty|||||}} Returns an empty string.{{if empty|{{{1|}}}|{{{2|}}}|three}} three Neither 1 nor 2 are defined, so "three" is returned.{{if empty|{{{1}}}|{{{2}}}|three}} {{{1}}} No pipe-characters following the names of the first two parameters ("1" and "2"), so the first is returned as text ("{{{1}}}").{{if empty|{{{logo|}}}|two}} two {{if empty|{{{logo}}}|two}} {{{logo}}} No pipe-character following the parameter name "logo", so the text "{{{logo}}}" is returned.{{if empty|p=q}} The template identifies the parameters it receives as parameters 1 to 9, not using names such as "p", etc.See also
- {{if all }}
- {{if either }}
- Help:Parameter default
- {{Category see also if exists 2 }}
Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
Add categories to the /doc subpage. Subpages of this template.