第5回 様々なループ構造とPOSTによるデータ送信 - PHP基礎講座

PHP 中級 講座

Saity先生のPHP基礎講座

Lecutures on PHP

第5回 様々なループ構造とPOSTによるデータ送信 (その1)

 このエントリーをはてなブックマークに追加

  • さて、前回の終わりに言ったように、今回はこれまで説明してこなかった新しい言語構造を勉強していこう。その後で、占いプログラムの入力フォームを作りつつ、前回説明したGETという方式に替わる、POSTという新しい送信方式を学んでいこうか!!
  • は~い。

まだまだある言語構造

  • 以前ifという言語構造を説明したよね。これは条件分岐をするのに必要不可欠な構文だ。今回は、for、foreach、while、switchという構文を説明しようと思うんだ。
  • いきなり知らない言葉がいっぱい出てきた~。それぞれ簡単に、わかりやすく説明してください☆
  • オホン!ではまずforから。for構文は、一定の数だけ同じ動作を繰り返すときに使うんだ。たとえば、以下のようなコードを見てほしい。
<?php
print("ループの始まりです。<br>");
for (
$i 0$i 10$i++) {
  print(
$i "回目のループです。<br>");
}
print(
"ループの終わりです。<br>");
?>
  • これを実行すると、以下のようにブラウザに表示されるよ。

for構文

  • 同じ文章が、番号だけ変わって何回も繰り返されてますね?
  • そう。結果を見ると、for構文の「{」から「}」に囲まれた部分が、合計10回繰り返されていることがわかると思う。forの構文は以下のとおり。
for (条件1; 条件2; 式3) {
    // 条件2に合致する際に実行される内容
}
  • 「条件1」はループ開始時の評価、「式3」は「{」から「}」の間のループが1度終わるたびに実行される式だ。
  • えぇっと・・・。上の例で言うと、$i=0でスタートして、$i<10が正のあいだ、内容が実行されるのね。そして毎回ループの後に$iが・・・なにこれ?
  • $i++のことかな?これは、$iの値に1を加算するってことだよ。
  • なるほど。ループが1回終わるごとに$iが1ずつ増えるから、条件2の$<10とあわせて、0~9で合計で10回ループが行われるという事なのね。
  • そうだね。for構文はプログラムの制御構造の中でも複雑な部類に入るけど、色々なプログラムを見ていくことで理解できると思うよ。
  • ふむふむ。たしかに、3つも条件式があるからちょっと難しいですね。しっかり覚えないと。
  • ちなみに、for文の内容のところで、今回ドット演算子(文字列演算子)を使ってみたよ。具体的には、
print($i . "回目のループです。<br>");

で使っているピリオドだ。これは、文字列を連結するときに使う演算子だよ。

  • ここでは、$iの数字と「回目のループです。」っていう文をくっつけてるってことですね。他の演算子にはどんなのがあるんですか?
  • さっき出てきた$i++というのも演算子の一つなんだ。あと良く使うものは、以下のようなものかな。
  • $c = $a + $b; // 足し算
  • $c = $a - $b; // 引き算
  • $c = $a * $b; // 掛け算
  • $c = $a / $b; // 割り算
  • $c = $a % $b; // $aを$bで割った余り
  • $c = $a . $b; // $aと$bを連結
  • $c = $a++; // $aに1を加える
  • $c = $a--; // $aから1を引く
  • 他にも、以下のような書き方もできる。
  • $a += $b; // $a = $a + $bの略
  • $a .= $b; // $a = $a . $bの略
  • //他も同様
     
  • とりあえず、これぐらいは覚えておこう。他にもビット演算子など様々なものが用意されているので、詳しくはマニュアルを参考にしてね。
  • は~い

  



Pick Up Q&A

Q
負荷時のmysql_connect()エラー
 このエントリーをはてなブックマークに追加 
A
これはPHPというよりOSまたはMySQLのコミュニティで質問されたほうがいいと思います。 ぱっと思いついた範囲で記すと MySQL等のDBに「ある時点において同時に接続可能なクライアントの最大数」に制限があるよう...

>>続きを読む

今回のような実践的な経験がエンジニアのキャリアに繋がると思います。是非サービスを成功させて下さい!

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)