Help:条件文
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

0 }}

という複雑な判定文を作ることができます。この意味は、「"引数A" か "引数B" のいずれかが定義されていれば 1 を、どちらも定義されていなければ 0 を返す」になります。

ifでは、等号その他の数学的な演算は一切サポートされていないことに注意してください。例えば、

{{#if: 1 = 2 |はい|いいえ}} = はい (1 = 2 は空文字列でないから)

となります。if文は「もし定義されていたら」という条件が意図されています。もし、文字列を比較するのならば、ifeq を使ってください。また、数を比較するのなら、 ifexpr を使ってください。
ifeq

ifeq は2つの文字列を比較し、比較の結果に応じて異なる文字列を返します。文法は、{{#ifeq: <文字列1> 。<文字列2> 。<等しいときに返す文> 。<等しくないときに返す文> }}{{#ifeq: <対象文字列> 。<比較文字列> 。<等しいときに返す文> 。<等しくないときに返す文>}}

数値と見なされる文字列は、数値として判断されます。

{{#ifeq: 007 。7 。同じ 。違う }} = 同じ

{{#ifeq: +7 。7 。同じ 。違う }} = 同じ

{{#ifeq: 0 。-0 。同じ 。違う }} = 同じ

{{#ifeq: 1e2 。100 。同じ 。違う }} = 同じ

{{#ifeq: 0x10 。16 。同じ 。違う }} = 違う

(例外) {{#expr:}} で数値として扱える e、E、pi、PI は、文字として扱われます。

{{#ifeq: e 。E 。同じ 。違う }} = 違う

{{#ifeq: pi 。PI 。同じ 。違う }} = 違う

ダブルクオーテーション (") などの文字を追加して数値でなくすと、文字列として比較します。

{{#ifeq: "007 。"7 。同じ 。違う }} = 違う

{{#ifeq: "+007 。"7 。同じ 。違う }} = 違う

{{#ifeq: "1e2 。"100 。同じ 。違う }} = 違う

{{#ifeq: "0x10 。"16 。同じ 。違う }} = 違う

大文字と小文字は区別されます。

{{#ifeq: A 。a 。同じ 。違う }} = 違う

但し、数値とみなされる場合、大文字と小文字は区別されません。

{{#ifeq: 1e2 。1E2 。同じ 。違う }} = 同じ

{{#ifeq: 0x1 。0X1 。同じ 。違う }} = 違う

ifexist

ifexist は、指定されたページが存在するかどうか(リダイレクトを含む)によって、2つのうちの1つの結果を返します。{{#ifexist: <ページ名> 。<あるときに返す文> 。<ないときに返す文> }}

1つ目のパラメータは、調べたいページ名です。2つ目は存在している場合に返す文、3つ目は存在しない場合に返す文です。調べたいページ名が有効なタイトルでなければ、存在しない場合の文が返されます。例えば、

{{#ifexist:Foo|Bar|.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation.cs-ja1 q,.mw-parser-output .citation.cs-ja2 q{quotes:"「""」""『""』"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free a,.mw-parser-output .citation .cs1-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited a,.mw-parser-output .id-lock-registration a,.mw-parser-output .citation .cs1-lock-limited a,.mw-parser-output .citation .cs1-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription a,.mw-parser-output .citation .cs1-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:#d33}.mw-parser-output .cs1-visible-error{color:#d33}.mw-parser-output .cs1-maint{display:none;color:#3a3;margin-left:0.3em}.mw-parser-output .cs1-format{font-size:95%}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}RFC?3092}} = Bar (Foo は存在するので)

{{#ifexist:Help:条件文|はい|いいえ}} = はい (Help:条件文は存在するので)

{{#ifexist:m:Help:Calculation|はい|おっと}} = おっと (m:Help:Calculationは存在しますが、これはウィキペディア日本語版の外(メタウィキメディア)のページです)

となります。

言語間リンクとそれ以外を区別するには {{If interwiki link}}も使えます。
ifexpr

ifexpr は、数式を評価(計算)し、その結果に従って2つの文字列からひとつを返します。{{#ifexpr: <数式> 。<真の場合に返す文> 。<偽の場合に返す文> }}

数式の結果が 0 または空文字列であった場合には <偽の場合に返す文> が返され、そのほかの場合には <真の場合に返す文> が返されます。数式の文法は expr と同じです。

{{#ifexpr: {{ns:0}} 。Toast 。or else }} = or else ({{ns:0}} は空文字列だから)

計算が行えない場合や不正な計算の場合はエラー文字列を返します。(参考:ゼロ除算

{{#ifexpr:1/0|0以外|0である}} = 0 で除算しました。

{{#ifexpr:1/n|0以外|0である}} = 構文エラー:「n」を認識できません。

<真の場合に返す文>も<偽の場合に返す文>も省略すると、何も返しません(空文字列を返します。)

{{#ifexpr:1/2}} =

省略した場合でも数式の評価は行います。

{{#ifexpr:1/0}} = 0 で除算しました。

{{#ifexpr:1/n}} = 構文エラー:「n」を認識できません。

評価結果を更に評価させる場合は結果に注意してください。

{{#if: {{#ifexpr:1/0}} 。エラー文字列 。空 }} = エラー文字列

{{#if: {{#ifexpr:1/n}} 。エラー文字列 。空 }} = エラー文字列

{{#if: {{#ifexpr:1E4}} 。エラー文字列 。空 }} = 空

{{#if: {{#ifexpr:a=b}} 。エラー文字列 。空 }} = エラー文字列

{{#if: {{#ifexpr:1=2}} 。エラー文字列 。空 }} = 空

switch

switch は、ひとつの値(基準値)を他の複数の値と比較し、一致するものが見つかったら該当の値を返します。文法は基本的に、{{#switch: <基準値>。<値1> = <返す文1>。<値2> = <返す文2>。...。<値n> = <返す文n>。<その他の時に返す文>}}

switch はそれぞれの値を、基準値と一致するものがみつかるまでそれぞれの値をずっと探そうとします。もし見つかったら、値に相当する文(等号のあとにある文)を返します。もし見つからなかったら、最後の等号のない項を返します。もし、この項にどうしても等号を含めて書く必要がある場合には、#default を用います。{{#switch: <基準値>。<値> = <返す文>。#default = <その他の時に返す文>}}

同じ返す文を何度も書くのを省略するため、値が「通り抜ける」構造になっていることに気をつけてください。たとえば、{{#switch: <基準値>。<値1>。<値2>。<値3> = <返す文3>。...。<値n> = <返す文n>。<その他の時に返す文>}}

この例では、値1と値2に等号が付いていません。もしそれらに一致したら、返す文3が返されます。つまり、等号を省略した場合には、次の最初の等号の後の文が返されるのです。

switch も ifeq と同様、数値と見なされる文字列は、数値として判断されます。次の結果に注意してください。

{{#switch: 007 。7=7にマッチ 。007=007にマッチ 。#default=マッチなし }} = 7にマッチ

{{#switch: "007" 。7=7にマッチ 。007=007にマッチ 。#default=マッチなし }} = マッチなし

{{#switch: "007" 。7=7にマッチ 。"007"="007"にマッチ 。#default=マッチなし }} = "007"にマッチ

{{#switch: 16 。0x10=0x10にマッチ 。#default=マッチなし }} = マッチなし

{{#switch: 0x10 。16=16にマッチ 。#default=マッチなし }} = マッチなし

{{#switch: "0x10" 。16=16にマッチ 。0x10=0x10にマッチ 。"0x10"="0x10"にマッチ 。#default=マッチなし }} = "0x10"にマッチ

大文字小文字を無視するためには、基準値と値に必要に応じて {{lc:}} または {{uc:}} を使い、小文字または大文字にそろえます。

{{#switch: A 。a=小文字 。A=大文字 }} = 大文字

{{#switch: A 。a=小文字 。大文字 }} = 大文字

{{#switch: a 。a=小文字 。大文字 }} = 小文字

{{#switch: {{uc:a}} 。a=小文字 。大文字 }} = 大文字

{{#switch: {{lc:A}} 。a=小文字 。大文字 }} = 小文字

time

time は、日付や時間の書式を指定して出力する関数です。

文法は{{#time: <書式> }}{{#time: <書式> 。<日付/時間> }}{{#time: <書式> 。<日付/時間> 。<言語コード> }}

のいずれかです。

<日付/時間> が指定されていない場合には、コードがHTMLに変換された時刻が用いられます(タイムゾーンはUTC)。ページのキャッシュに注意してください。記事が閲覧される時刻と1週間以上の時差が出る場合もあるでしょう。最新にするには、その都度更新する必要があるかもしれません。なにも変更しないで投稿し直す(いわゆるゼロ編集)、action=purge をURLのオプションに付ける、閲覧者のオプションで「ページをキャッシュしない」にする、などで更新できます。参考:Template:purge、キャッシュを破棄

以下の <書式> の指定文字は、PHPの指定文字(date())と同じ意味を持っています。国際化(言語と地域による異なった出力)を別にすれば、PHPの動作との重要な相違点は、エラーの考え方と出力です。すべての書式の指定文字は言語に従って文字列を返します。もし、そうしたくないときには、指定文字 xn を前に付けてください。

コード説明出力(例)現在の出力
Y4桁の西暦年。20062024
y2桁の西暦年00 から 9924
L閏年かどうかの判定。閏年なら 1 、そうでなければ 01
oISO 8601での暦週が属する暦年。20132024
nの数字。ひと桁の時も0が前に付かない。1 から 125
m月の数字。ひと桁の時は0が前に付く。01 から 1205
M月の短縮形。たいていは国際化されている。1月 から 12月5月
F月。たいていは国際化されている。1月 から 12月5月
t月の日数。28 から 3131
WISO 8601形式の週数。ひと桁の時は0が前に付く。01 から 5321
j。ひと桁の時も0が前に付かない。1 から 3121
d日。ひと桁の時は0が前に付く。01 から 3121
z0から数えたその年の通算日数。0 から 365141
D曜日の短縮形。まれに国際化されている。[t 1]月 から 日火
l曜日。まれに国際化されている。[t 1]月曜日 から 日曜日火曜日
w曜日の数値(アメリカ式)。[t 1]0(日曜日) から 6(土曜日)2
NISO 8601形式の曜日の数値。[t 1]1(月曜日) から 7(日曜日)2
a午前午後を am/pm で。am または pmpm
A午前、午後を AM/PM で。AM または PMPM
g12時間制の時刻。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:39 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef