YENLAND TIME :  

 Top >  Library  |  印刷する印刷ページ       はてなブックマークに追加 このページを Google Bookmarks に追加 RSS

大区分

その他

中区分

PC

小区分

PHP

項目

3. 条件分岐(if構文、switch構文)

入力者 山下章太 更新日 20130113


ここでは、分岐処理をする方法を幾つか紹介します。

PHPの代表的な分岐処理としては、if と switch の2つがありますが、「条件分岐」を使いこなすことで、 実に有用で複雑な動作を実現させることができます。。

条件分岐とは、ある条件が満たされているのかを判断し、その後の処理を変えることができる「制御構文」の1つです。
こうした条件分岐を利用することで、閲覧者からの操作や反応などによって、別の処理に誘導することができ、 その中に多くの処理スクリプトを配置させることが可能です。

■ if構文

if構文では、最初に式を評価し、その条件を判断して処理スクリプトを実行します。
エクセルのif関数などと、利用方法はほとんど同じです。

基本的な記載方法は、下記のようになります。

if(条件式) {
  (条件に合致したときの処理)
} else {
  (条件が合致しないときの処理)
}

条件式で判定して、条件に合致する場合とそうでない場合を処理します。

例えば、タクシーの乗車で、2000メートル以下の場合は、初乗り料金の730円、 2000メートルを超える場合は200メートルごとに100円加算されるという計算をしたいとします。
この場合の計算式は、走行距離をXメートルとすると、下記の計算式で計算できます。

if(X>2000) {
  Y = 730;
} else {
  Y = 730 + ceil(( X - 2000 ) / 200 ) * 100;
}

ここで、ceilという関数は小数点以下を切り上げする関数です。

エクセルの関数の場合は、同じように計算すると、以下の計算式になります。

= if( X>2000, 730, 730 + Roundup(( X - 2000 ) / 200, 0) * 100)

小数点以下を切り上げするために、Roundupという関数を利用していますが、基本的に同じです。

PHPでif関数を利用できると、処理の幅が広がります。



■ switch構文

switch文は、変数の値に応じて条件分岐する制御構文で、case文と共に利用します。switch文の基本的な書式は以下のとおりです。

switch(変数または式) {

 case "値1":
  変数の値が、値1のときに処理するスクリプト
  break;

 case "値2":
  変数の値が、値2のときに処理するスクリプト
  break;

case "値3":
  変数の値が、値3のときに処理するスクリプト
  break;

 default:
  変数の値がいずれの case の値と一致しなかった場合のスクリプト

}

この処理を覚えておくと、条件判定の幅が大きく広がります。

PHPの基本的な記載方法」で説明しましたが、 下記のように毎日数値を変えたい場合(今日の運勢など)、switch文で計算します。

【計算例】

日付の下1桁(0〜9)に応じて、下記のような占い結果を表示する。
0:大吉
1:凶
2:中吉
3:小吉
4:大吉
5:小吉
6:凶
7:中吉
8:小吉
9:大吉

この場合には、下記のようにPHPを作成します。


$a = date("j"); // 日付を取得する

$a = $a - floor($a/10)*10; //10の位を除く

// 数値判定して占い結果を出力
switch ($a) {

 case 0:
  echo "大吉";
  break;
 case 1:
  echo "凶";
  break;
 case 2:
  echo "中吉";
  break;
 case 3:
  echo "小吉";
  break;
 case 4:
  echo "大吉";
  break;
 case 5:
  echo "小吉";
  break;
 case 6:
  echo "凶";
  break;
 case 7:
  echo "中吉";
  break;
 case 8:
  echo "小吉";
  break;
 case 9:
  echo "大吉";
  break;

}




   はてなブックマークに追加 このページを Google Bookmarks に追加 RSS