140130訓練

投稿者: | 2014年1月30日

昨日の続き。

foreach

foreach (array_expression as $value)

Javaの拡張for文みたいな感じ。Javaとは配列と要素の値の順番が逆なので注意。

for (Object element : list)

連想配列を使ったリスト

配列の要素に文字列などのキーを付けられる。
普通の配列だと0,1,2,3…..と自動的に番号が振られていたが連想配列だと意味のあるキーを設定できるため、キーを指定して参照が出来て便利。

foreachを使ってループ処理も出来る。

$keyと$valueは仮引数なので利用する場所で一致させてあげればOK。
つまり適当な名前の引数で問題ない。利用する時に同じ名前を指定すれば(繰り返し)。

こんな感じで。

実行結果

1年は12ヶ月だよ
1月	January
2月	February
3月	March
4月	April
5月	May
6月	June
7月	Jury
8月	August
9月	September
10月	October
11月	November
12月	December

もちろん単独のキーを指定してアクセスすることも出来る。

print($month['3月']);

この場合は上記と照らし合わせると「March」が出力される。

配列の入れ子

表題の通り。連想配列のvalueをarrayにしてしまう。
ソースだけ置いておきます。

実行結果はテーブル使ったので画像で。
proflist

配列は自由に入れ子に出来るので、多次元配列も作れる。
今回は割愛。

検索フォーム

簡単な検索フォームです。
mb_strposで入力語と一致する配列のキーがあるか調べます。
mbはマルチバイトの意味で日本語等のマルチバイト文字に対応しているということ。
とりあえずコード

検索フォーム

結果表示

検索なのでGETにしてみたが、POSTでも問題ない。
セキュリティ上問題があるならPOSTの方がよい。

mb_strpos

文字列の中に指定した文字列が最初に現れる位置を見つける
mb_strpos ( string $haystack , string $needle [, int $offset = 0 [, string $encoding = mb_internal_encoding() ]] )
第一引数:調べたい文字列
第二引数:第一引数の中から探す文字列
第三引数:開始位置
第四引数:文字エンコーディング
第三、第四引数は特に指定がなければ省略可。

検索結果に画像を表示する

画像用変数に代入する画像を性別で条件分岐させる。

入力語が空の時は
Warning: mb_strpos(): Empty delimiter in ファイル名 on line 43
という警告が画面に出てしまうので仮の文字列を代入している。

実行結果

resultimg
どうでもいい画像についての情報
男:ライ(衝撃ゴウライガン!!)
女:ショウ(衝撃ゴウライガン!!)
その他:仮面ライダーブラーボ(仮面ライダー鎧武)

投稿フォーム

ほとんどHTMLなので解説少なめ。
連想配列で入力情報を準備しておく。

キャスト

年齢の項目だけ抜粋。

年齢の変数ageは文字列で設定した。
対してif文で比較しているカウンタ変数$iは整数値(int型)なので、
比較演算子===の場合は型比較までするため、intにキャストしてやる必要がある。なのでJavaと同じように(int)をつけてやる。

チェックボックスなどの複数選択可のパーツのname属性

複数あることが分かる、配列として格納出来るようにnameの末尾に[]をつける。
付け忘れると値が取得できないので注意。

その他のformパーツの種類について

こちらに一覧があります。
フォーム部品の種類を指定するtype属性
実装状況はCan I use…で確認しましょう。

これくらいしか無いでござる。


コメント

Loading Facebook Comments ...

コメントを残す

No Trackbacks.