「WordPressで学ぶPHP(1)変数・制御構造編」が発売されました。
「WordPressで学ぶPHP」シリーズの第1巻で、WordPressを通してPHPを学んでいく本です。
この本では、PHPの基本となる変数と制御構造について解説します。
Kindle本で、定価500円です。
配列/ハッシュ関連のテンプレートタグを追加するプラグイン
配列やハッシュについて、いくつかのテンプレートタグを追加するプラグインを公開します。
1.インストール
プラグインは以下からダウンロードします。
ダウンロードしたZipファイルを解凍すると、「plugins」のフォルダができます。
このフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。
2.配列関係のテンプレートタグ
配列関係として、以下のテンプレートタグが追加されます。
2-1.MTArrayShift
配列の先頭の要素を削除します。
nameモディファイアで、配列の名前を指定します。
2-2.MTArrayPop
配列の最後の要素を削除します。
nameモディファイアで、配列の名前を指定します。
2-3.MTArraySort
配列の最後の要素を昇順に並べ替えます。
nameモディファイアで、配列の名前を指定します。
また、標準では個々の要素を文字列として並べ替えます。
数値として並べ替えたい場合は、「numeric="1"」のモディファイアも付加します。
2-4.MTArrayReverse
配列の要素を逆順に並べ替えます。
nameモディファイアで、配列の名前を指定します。
2-5.MTArrayDelete
配列から要素を1つ削除します。
nameモディファイアで、配列の名前を指定します。
また、indexモディファイアで、削除する要素の番号を指定します。
2-6.MTArrayDupDelete
配列に値が重複する要素が複数ある場合、その中の1つを残して残りを削除します。
nameモディファイアで、配列の名前を指定します。
例えば、ある配列の要素が以下のようになっているとします。
番号 | 値 |
---|---|
0 | 東京 |
1 | 大阪 |
2 | 東京 |
3 | 名古屋 |
この場合、「東京」が2出ていて重複していますので、1つを残して残りを削除します。
結果として、この配列は以下のようになります。
番号 | 値 |
---|---|
0 | 東京 |
1 | 大阪 |
2 | 名古屋 |
2-7.MTArrayConcat
2つの配列AとBがあるとして、Aの後にBを連結します。
A/Bの2つの配列の名前を、それぞれname/concatのモディファイアで指定します。
2-8.MTArrayGrep
配列の中から、特定の条件を満たす要素を抜き出します。
nameモディファイアで、対象の配列を指定します。
また、testモディファイアで、条件の式を書きます。
式の中では、配列の個々の要素を「$_」で表します。
また、条件式はPerlの書き方を使います。
例えば、配列nunbersから、値が10以上の要素だけを抜き出したい場合は、以下のように書きます。
<$mt:ArrayGrep name="number" test="$_ >= 10"$>
2-9.MTArrayMap
配列の各要素に対して、一律に計算等を行って、値を更新します。
nameモディファイアで、対象の配列を指定します。
また、operationモディファイアで、実行する処理(式)を書きます。。
式の中では、配列の個々の要素を「$_」で表します。
また、式はPerlの書き方を使います。
例えば、配列nunbersで、各要素の値を2倍にしたい場合は、以下のように書きます。
<$mt:ArrayMap name="number" operation="$_ * 2"$>
2-10.MTArrayUnion
2つの配列AとBがあるときに、AとBのどちらかにある要素を取り出し、同じ値が2回出てこないようにして、Aに代入しなおします。
配列A/Bを、それぞれname/unionのモディファイアで指定します。
例えば、以下の2つの配列cities1/cities2があるとします。
番号 | 値 |
---|---|
0 | 東京 |
1 | 大阪 |
2 | 名古屋 |
番号 | 値 |
---|---|
0 | 東京 |
1 | 神戸 |
2 | 横浜 |
この状況で、以下のMTArrayUnionタグを実行するとします。
<$mt:ArrayUnion name="cities1" union="cities2"$>
すると、配列cities1は以下のようになります。
「東京」はそれぞれの配列にあるので、1回だけ取り出されます。
番号 | 値 |
---|---|
0 | 東京 |
1 | 大阪 |
2 | 名古屋 |
3 | 神戸 |
4 | 横浜 |
2-11.MTArrayIntersection
2つの配列AとBがあるときに、AとBの両方にある要素を取り出し、同じ値が2回出てこないようにして、Aに代入しなおします。
配列A/Bを、それぞれname/intersectionのモディファイアで指定します。
2-12.MTArrayDiff
2つの配列AとBがあるときに、Aだけにある要素(=AにあってBにない要素)を取り出し、同じ値が2回出てこないようにして、Aに代入しなおします。
配列A/Bを、それぞれname/diffのモディファイアで指定します。
3.ハッシュ関連のテンプレートタグ
ハッシュ関係として、以下のテンプレートタグが追加されます。
3-1.MTHashKeys
ハッシュのキーのみ取り出し、配列に代入します。
ハッシュの名前は、nameモディファイアで指定します。
また、代入先の配列の名前は、toモディファイアで指定します。
3-2.MTHashValues
ハッシュの値のみ取り出し、配列に代入します。
ハッシュの名前は、nameモディファイアで指定します。
また、代入先の配列の名前は、toモディファイアで指定します。