WikiDer > Yordam: Shartli iboralar - Vikipediya

Help:Conditional expressions - Wikipedia

Ushbu sahifa, Yordam: Shartli iboralar, sahifadagi shartlarni tekshirish asosida turli xil natijalarni aks ettirish usullarini tavsiflaydi shablon. The ajralish funktsiyalari baholash uchun ishlatiladi shartli iboralar funktsiya nomlarini o'z ichiga oladi: #ifexpr, #ifeq, # almashtirish, #ifva #ferror yoki #ifexist. Har bir funktsiya nomi quyidagi tushuntirishlar bilan bog'langan.

  • Foydalanish #ifeq 2 ta satr yoki sonni taqqoslay oladi.
  • Ammo #ifexpr matematik formulani yoki bir nechta shartlarni tekshirishi mumkin.
  • The # almashtirish funktsiya qiymatiga qarab o'nlab yoki yuzlab turli xil yo'llarga tarmoqlanishi, a funktsiyasini bajarishi mumkin ish bayonoti muqobil variantlardan birini tanlash.
  • Foydalanish #if parametr o'tkazilganligini yoki ifoda rost deb baholanganligini tekshirishi mumkin.
  • Foydalanish #ferror ifoda qiymati xatoni keltirib chiqaradimi yoki yo'qligini tekshirishi mumkin, aks holda qiymat ko'rsatilgan.
  • Esa #ifexist sahifa nomi yoki rasm / media fayli hali mavjudligini tekshirishi mumkin.

Shuni esda tutingki, tashqi qavs ichidagi barcha qo'shimcha bo'shliqlar olib tashlanadi, shuning uchun bu ushbu konstruktsiyalarni yaxshiroq o'qish uchun formatlashga imkon beradi. Masalan:

{{#if: {{{xx |}}}   | parametr xx o'tdi | parametr xx chiqarib tashlandi}}

Matnda faqat xx ning ikkala tomonidagi bo'shliqlar paydo bo'ladi.

Shartli ifodalarning qisqacha mazmuni

Har bir funktsiyani tezkor formati quyidagicha (quyidagi funktsiya misollarini ko'rishingiz mumkin):

  • {{#if: sinov satri | bo'sh bo'lmagan qiymat | bo'sh bo'lsa qiymat }} (test satri bo'sh yoki yo'qligiga qarab ikkita qiymatdan birini tanlaydi)
  • {{#ifeq: mag'lubiyat 1 | mag'lubiyat 2 | teng bo'lsa, qiymat | teng bo'lmagan taqdirda }} (test satrlari teng yoki yo'qligiga qarab ikkita qiymatdan birini tanlaydi - agar mavjud bo'lsa, son bo'yicha)
  • {{#iferror: sinov satri | agar xato bo'lsa qiymati | to'g'ri bo'lsa qiymat }} (test satri tahlil qiluvchi xatosini keltirib chiqaradimi-yo'qligiga qarab qiymatni tanlaydi)
  • {{#ifexpr: ifoda | agar rost bo'lsa, qiymat | false bo'lsa qiymati }} (ifodani baholash asosida qiymatni tanlaydi)
  • {{#ifexist: sahifa sarlavhasi | mavjud bo'lsa qiymat | agar mavjud bo'lmasa }} (sahifa sarlavhasi mavjudligiga qarab qiymatni tanlaydi)
  • {{# almashtirish: sinov | ish1 = 1-holat uchun qiymat | ... | sukut bo'yicha }} (sinov satrining qiymatiga asoslangan alternativalarni taqdim etadi; qarang sinov holatlari.)
  • {{#expr: ifoda }} (berilgan ifodani baholaydi; qarang Yordam: hisoblash)

The sehrli so'zlar birgalikda, ichki birikmalarda, murakkab sharoitlarda tarmoqlash uchun ishlatilishi mumkin. Ba'zi kombinatsiyalar o'zaro ta'siriga asoslangan fokuslardan foydalanishi mumkin.

Bilan ekanligini unutmang #if iboralar, a yordamida pozitsion parametr, bu formadagi parametr "{{{1}}}" har doim finalni talab qiladi vertikal chiziq "|" parametrda: {{{1|}}}. Agar satr / quvur tashlab qo'yilgan bo'lsa, unda parametr 1 mavjud bo'lmaganda, maydonni bo'sh qoldirish o'rniga, sahifada so'zma-so'z matn ishlatiladi "{{{1}}}"(" 1 "atrofidagi jingalak qavslarning 3 to'plami sifatida) va #if agar parametr 1 "1 =" kabi bo'sh satr sifatida o'tkazilmasa, to'g'ri bo'ladi.

Foydalanish #if

Foydalanish #if parametr o'tkazilganligini tekshirishi mumkin.

Ushbu funktsiya sinov satrini baholaydi va uning bo'sh yoki yo'qligini aniqlaydi. Faqat bo'sh joyni o'z ichiga olgan sinov satri bo'sh deb hisoblanadi.

:{{#if: sinov satri | test satri bo'sh bo'lmasa qiymat | agar test satri bo'sh bo'lsa (yoki faqat bo'sh joy bo'lsa) }}

Misollar:

{{#if: {{{1|}}}   | parametr 1 ma'lumotlarga ega parametr 1 bo'sh yoki o'tkazib yuborilgan}} {{# if: {{{xx |}}}   | parametr xx o'tdi | parametr xx bo'sh yoki o'tkazib yuborilgan}} {{# if: {{{xx |}}}{{{yy |}}}   | xx va / yoki yy o'tgan | ikkala xx ham, yy ham bo'sh / tashlangan}}

Foydalanish #ifeq

Foydalanish #ifeq 2 bilan taqqoslash mumkin torlar yoki raqamlar (lekin unday emas) raqamli ifodalar: 1 + 1). Tahlilchi funktsiyasi #ifeq ikkita qiymatni taqqoslaydi va ularning bir xilligini aniqlaydi.

:{{#ifeq: mag'lubiyat 1 | mag'lubiyat 2 | bir xil bo'lsa, qiymat | qiymati boshqacha bo'lsa }}

Agar ikkala satr ham raqamli qiymatlar bo'lsa, satrlar to'g'ridan-to'g'ri matn o'rniga raqamlar bilan taqqoslanadi:

{{#ifeq: 01 | 1 | teng | teng emas}}teng
{{#ifeq: x01 | x1 | teng | teng emas}}teng emas
{{#ifeq: 2.000 | 002 | teng | teng emas}}teng
{{#ifeq: 2.5 | 2 + .5 | teng | teng emas}}teng emas (foydalanish #ifexpr arifmetik uchun)
{{#ifeq: {{#expr: 10 ^ 3}} | 1000 | teng | teng emas}}teng

Taqqoslash harflar katta-kichikligiga sezgir, katta harflarga mos kelishini tekshirish:

{{#ifeq: Qirol | qirol | teng | teng emas}}teng emas
{{#ifeq: {{lc: TopCat}} | topcat | teng | teng emas}}teng
{{#ifeq: {{lc: {{{catname}}}}} | topcat | teng | teng emas}}

Shunday qilib, "nomli parametr qiymatini tekshirishda{{{catname}}}"keyin funktsiya {{lc: ___}} taqqoslash paytida bir zumda kichik matnga aylantirish uchun ishlatilishi mumkin. Ning qiymati {{{catname}}} keyinchalik foydalanish uchun o'zgartirilmaydi, aksincha u faqat kichik harflar bilan taqqoslanadi.

{{#ifeq: {{{n}}} | 1 | birlik | ko'plik}}ko'plik (Ko'pgina tillarda, shu jumladan ingliz tilida, {{Ko'plik| lang = xx  |  {{{n}}}  |  yakka  | ko‘plik }} to'liq teng).

Foydalanish #ifexpr

Foydalanish #ifexpr matematik formulani yoki bir nechta shartlarni tekshirishi mumkin #ifexpr baholaydi a matematik ifoda yoki mantiqiy ifoda va natijalarning mantiqiy haqiqiy / noto'g'ri qiymatiga qarab filiallar (bu erda nol degani) yolg'on):

:{{#ifexpr: ifoda | rost bo'lsa qiymat | false bo'lsa qiymati }}
Misollar:

{{#ifexpr: ({{{1}}} + {{{{2}}}) * 2.63> 45 | 45 | 45 dan yuqori | 45 dan yuqori emas}}
{{#ifexpr: {{{1}}}> 0 va {{{1}}} <1.0 yoki {{#ifeq: {{{decimal}}} | ha}} | kasrli | kasrli emas}}

The ifoda natija funktsiyasi bilan bir xil tarzda aniq baholanadi #expr, xuddi shu operatorlar mavjud bo'lganda. Chiqish mantiqiy ifoda sifatida baholanadi.

Bo'sh kirish ifodasi noto'g'ri qiymatiga baho beradi:

{{#ifexpr: | ha | yo'q}}yo'q

Yuqorida aytib o'tganimizdek, nol "false" ga, nolga teng bo'lmagan qiymat (masalan, 6,7) "true" ga baho beradi.

Noto'g'ri ma'lumotlar xato haqida xabar beradi. Biroq, funktsiya #ifexpr foydalanish bilan tengdir #ifeq bilan #expr ichida, lekin true / false (then / else) bandlarini aylantirish:

{{#ifeq: {{#expr: ifoda }} | 0 | false bo'lsa qiymati | rost bo'lsa qiymat }}

Noto'g'ri yoki noto'g'ri kiritilgan ifoda haqiqiy qiymat qismini ishga tushiradi (xato xabari oddiy satr sifatida ko'rib chiqiladi; u nolga teng emas, shuning uchun biz olamiz false bo'lsa qiymati).

{{#ifexpr: = | ha | yo'q}}Ifoda xatosi: Kutilmagan = operator
{{#ifeq: {{#expr: =}} | 0 | ha | yo'q}}yo'q

Qaytish qiymatlaridan biri yoki ikkalasi ham o'tkazib yuborilishi mumkin; tegishli filial bo'sh qoldirilganda hech qanday chiqish berilmaydi:

{{#ifexpr: 1> 0 | ha}}ha
{{#ifexpr: 0 = 0 | ha}} ha
{{#ifexpr: 1> 0 | | yo'q}}

Foydalanish # almashtirish

The # almashtirish funktsiya qiymatiga qarab o'nlab yoki yuzlab turli xil yo'llarga bo'linishi mumkin ish bayonoti muqobil variantlardan qaysi birini tanlaydi. A # almashtirish ifoda - bu parametr uchun bir nechta kod qiymatlarini boshqarishning tezkor usuli #if funktsiyalar; ammo, 100 dan ortiq shoxchalar ishlashi sekinlashadi va umumiy qiymatlar tanlovlar orasida yuqoriroq bo'lishi kerak, 3x-8x tezroq ishlaydi. Kamdan kam hollarda, a # almashtirish ikki mingdan ortiq filialga ega bo'lishi mumkin edi, lekin qiymatlarni taqqoslashdan oldin ham barcha filiallarni skanerlash uchun vaqt kerak.

The # almashtirish funktsiya bitta qatorli shakl bo'lishi mumkin:

{{# almashtirish: {{{x}}} | 1 = bitta | 2 = ikkita | 3 | 4 | 5 = 3-5 oralig'i | boshqa}}

Bu bitta satr # almashtirish ning qiymatini o'qiydi {{{x}}}. 1 qiymati uchun u "bitta" ni qaytaradi. Agar 2 qiymati bo'lsa, u "ikki" ga qaytadi. 3, 4 yoki 5 qiymatlari uchun u "3-5 oralig'ida" qaytadi. Boshqa har qanday qiymat yoki nol qiymat uchun u "boshqasini" qaytaradi.

Biroq, ko'p hollarda # almashtirish funktsiya ko'p satrli shakl bo'lib, har bir filial boshqa satrda joylashgan bo'lib, quyidagicha:

{{# almashtirish: {{{x}}} | 1 = bitta | 2 = ikkita | #default = other | 3 | 4 | 5 = har qanday 3-5 | {{#expr: 2 * 3}} = olti | {{#expr: 2 * 3 + 1}} = {{lc: SEVEN}} <!--ko'rsatuv ->}}

Bu sukut bo'yicha ishni ko'rsatishning muqobil usulini ko'rsatadi, u birinchi, oxirgi yoki biron bir joyda paydo bo'lishi mumkin.

Agar biron bir sukut belgilanmasa va berilgan qiymatga hech qanday holat mos kelmasa, nol qiymat qaytariladi.

A ning har bir filiali uchun # almashtirish, "=" tenglik belgisining har ikki tomoni oddiy qiymat, ifoda yoki shablon qo'ng'irog'i bo'lishi mumkin.

Qarang: Yordam: tahlil qiluvchi funktsiyasini almashtirish, to'liq tavsif va misollar uchun.

Foydalanish #ferror

Foydalanish #ferror ifoda qiymati xatoni qo'zg'atadimi-yo'qligini tekshirishi mumkin, keyin bu shart uchun biror narsa qilish kerak, aks holda u sinovdan o'tgan qiymatni ko'rsatadi.

Ushbu funktsiya kirish satrini oladi va ikkita natijadan birini qaytaradi; funktsiyani baholaydi to'g'ri agar kirish qatorida HTML ob'ekti bo'lsa class = "xato", shablon looplar va rekursiyalar kabi xatolar va boshqa "failsoft" tahlilchi xatolar:

{{#iferror: sinov satri | agar xato bo'lsa qiymati | to'g'ri bo'lsa qiymat }} (test satri tahlil qiluvchi xatosini keltirib chiqaradimi-yo'qligiga qarab qiymatni tanlaydi).

Qaytish satrlaridan bittasi yoki ikkalasi qoldirilishi mumkin. To'g'ri mag'lubiyat chiqarib tashlangan bo'lsa, xato satr bo'lmasa, sinov satri qaytariladi. Agar xato satri ham chiqarib tashlansa, bo'sh satr xatoga qaytariladi:

{{#iferror: {{#expr: 1 + 2}} | xato | to'g'ri}}to'g'ri
{{#iferror: {{#expr: 1 + X}} | xato | to'g'ri}}xato
{{#iferror: {{#expr: 1 + 2}} | xato}}3
{{#iferror: {{#expr: 1 + X}} | xato}}xato
{{#iferror: {{#expr: 1 + 2}}}}3
{{#iferror: {{#expr: 1 + X}}}}
{{#iferror: {{#expr:. }} | xato | to'g'ri}}to'g'ri
{{#iferror: a | xato | to'g'ri}}xato

Foydalanish #ifexist

Funktsiya #ifexist sahifa nomi yoki rasm / media fayli hali mavjudligini tekshirishi mumkin. Bu juda tez, lekin har bir sahifada 500 ta misol bilan cheklangan.

{{#ifexist: sahifa sarlavhasi | mavjud bo'lsa qiymat | agar mavjud bo'lmasa }} (sahifa sarlavhasi mavjudligiga qarab qiymatni tanlaydi)

Funktsiya quyidagicha baholanadi to'g'ri agar sahifa mavjud bo'lsa, tarkibidan qat'i nazar, bo'sh (tarkibdagi havolalar yoki kabi meta-ma'lumotlarni o'z ichiga oladi) sehrli so'zlar, lekin ko'rinadigan tarkib yo'q), bo'sh yoki a yo'naltirish. Faqatgina qayta bog'langan sahifalar baholanadi yolg'onshu jumladan sahifa mavjud bo'lgan, ammo o'chirilgan bo'lsa.

Foydalanish #expr

Foydalanish #expr matematik yoki mantiqiy ifodani baholash, taqqoslashni ko'paytirish va xato xabarlarini boshqarish.

{{#expr: ifoda }}

Misollar:

{{#expr: ({{{1}}} + {{{xshift}}} - 6) * 18.4}}
{{#expr: ln (7) ^ 3 - abs (-0.344) + qavat (5/3) 3-tur}}
{{#expr: {{{n}}}> 0 va {{{n}}} <1.0}}

Shablonlar uchun shartli shartlar

Shablon parametrini (masalan, {{{1}}}) bir tomondan aniqlangan va bo'sh bo'lmagan, yoki boshqa tomondan aniqlanmagan yoki bo'sh bo'lgan parametrlarni farqlash uchun #if: ni bo'sh sukut bilan ishlating:

{{#if: {{{param |}}} | param aniqlangan va bo'sh bo'lmagan | param aniqlanmagan yoki bo'sh}}.

Belgilangan (va ehtimol bo'sh) va aniqlanmaganlarni farqlash uchun quyidagilarni ishlating:

{{#ifeq: {{{param | +}}} | {{{param | -}}} | param aniqlangan | param aniqlanmagan}}.

Shuningdek qarang