SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

プログラミング未経験から始めるPHP入門

条件分岐と繰り返しを使いこなそう!
プログラミング未経験から始めるPHP入門(4)

第4回


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

ダウンロード サンプルソース (1.5 KB)

foreachループ

 foreachループは配列の各要素を繰り返す場合に使用します。例えばECサイトであれば、一般的にはショッピングカートの商品を配列に入れて管理しますが、カートの商品の合計金額を計算するにはどのようにすればいいでしょうか。ここでforeachループの登場です。foreachループは以下のように記述します。

foreachループの書き方
foreach ( 配列名  as  変数名 ){ 
            繰り返したい処理
}

 上記の「変数名」は任意に名前をつけて構いません。サンプルソースの「foreach.php」をメモ帳などで開いてください。

「foreach.php」の内容。ECサイトなどで、購入した商品を全て表示するプログラムをイメージしてください
<html>
<h2>foreach ループの例</h2>
<body>
<?php
	$cart = array();
	$cart[0] = "コート";
	$cart[1] = "セーター";
	$cart[2] = "マフラー";
	foreach( $cart as $item )
	{
		print( "お買い上げの品物:$item<br>" );
	}
?>
</body>
</html>

 上記で、「$item」はforeachループの中で初めて現れたスカラー変数です。この変数に「$cart」配列の中身を1つずつ移し変えていきます。「$item」の変数名は任意で、「$a」や「$b」でも構いませんが、一般的には人間が見て分かりやすい変数名をつけます。現在はカートの商品をプログラムに固定で記述するしかできませんが、今後学習が進むにつれ、クリックされた商品をカートに追加するような処理も可能になってきます。

 では、サンプルを実行してみましょう。http://localhost/codezine4/foreach.phpにアクセスしてください。変数に各商品名が代入されながら、繰り返し表示されることが確認できると思います。

コートからマフラーまで、順に$itemに代入され表示される
コートからマフラーまで、順に$itemに代入され表示される

whileループ

 最後にwhileループです。whileループは「ある条件を満たす間」繰り返すループです。例えば『当たりが出るまで抽選を繰り返す』などの条件で、処理を繰り返したい時に使用します。whileループは次の書式で記述します。

whileループの書き方
while( 継続条件 ){ 
            繰り返したい処理
}

 mixiやブログなどで写真をアップするときの事を想像してみてください。アップした元々の写真は大きなサイズでも、実際の記事としては小さなサイズの写真が表示されます。これはサイトの裏方で写真を縮小しているためですが、このような処理をwhileループで記述することができます。

 サンプルソースの「while.php」をメモ帳などで開いてください。

「while.php」の内容
<html>
<h2>while ループの例</h2>
<body>
<?php
	$width = 500; //画像の幅は500ピクセル
	// 画像が200ピクセル以下になるまで、90% ずつ縮小する。
	while($width > 200 ){
		$width = $width * 0.9;
		print("現在、画像は $width ピクセルです。<br>");
	}
	print("最終的には $width ピクセルになりました。<br>");
?>
</body>
</html>

 上記は『横幅500ピクセルの写真を10%ずつ縮小し、200以下になるまで処理を続ける』という処理を、whileループを使用し擬似的に表現したプログラムです。画像の幅を格納する「$width」が、200よりも大きい間($width > 200)、ループを繰り返します。逆の言い方をすれば、「$width」が200以下になった時点で、ループを終了するという事です。

 では、サンプルを実行します。http://localhost/codezine4/while.phpにアクセスしてください。

上記URLへのアクセス結果。上から順番に、「0.9かける」という処理が行われ、「値が200以下」になったところで、ループを抜け「最終的には・・・」と表示される
上記URLへのアクセス結果。上から順番に、「0.9かける」という処理が行われ、「値が200以下」になったところで、ループを抜け「最終的には・・・」と表示される

まとめ

 今回は、条件分岐と繰り返し(ループ)に関して説明をしました。条件分岐はifelseifelseというキーワードを用いて実現します。また、繰り返しは用途に応じてforforeachwhileの3種類の構文を使い分けます。

 条件分岐やループを使う事でWebサイトの面白みが増します。どこに条件分岐やループが使われているかを考えながら、皆さんが普段使用しているサイトを見てみてください。また、できれば自分で作りたいWebサイトのアイディアを出し、それを条件分岐や繰り返しなどを利用して、実際にプログラムを書いてみてください。

今回のまとめ
  • if、elseif、elseというキーワードを用いて、条件分岐を記述する。
  • forループは、回数を指定して繰り返す事に向いている。
  • foreachループは、配列の要素数だけ、繰り返す事に向いている。
  • whileループは、ある条件に合致する間、何かを繰り返す時に使用する。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
プログラミング未経験から始めるPHP入門連載記事一覧

もっと読む

この記事の著者

大家 正登(オオイエ マサト)

デジタルハリウッド『PHP 講座』講師。学生時代、スペイン語を専攻していたものの何故かプログラム言語に心が傾き、近所のフリープログラマーに弟子入り修行。その後中堅 SIer に 3 年間所属し、現在はフリーエンジニア。仕事の傍らジャズを演奏し、コントラバス 2 台と同居中。(ITエンジニア・大家正登のWeb...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3595 2009/03/04 22:24

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング