スポンサードリンク

PHP 四則算できるように計算プログラムを改良する。

前回までの計算プログラムは足し算しかできませんでしたが、改良して四則算に対応させましょう。セレクトボックスで計算方法を選択できるようにします。

PHPには制御構造として switch がありますので、変数の値によって処理を分岐することが簡単にできます。


【1】sample007 フォルダをコピーして sample010 フォルダを作成します。

php-72.gif


【2】calc.html と calc.php を変更します。

php-73.gif

*「\」はWindowsではエンマークのことです。

保存先 C:\phpdev\www\test\sample010
ファイル名 calc.html

<html>
  <head>
    <title>calc.html</title>
  </head>
  <body>
    <form name="form1" action="calc.php" method="post">
      <input type = "text" name = "txtA"> 

      <select name="selOpe" size=1>
        <option value = "+">+</option>
        <option value = "−">−</option>
        <option value = "×">×</option>
        <option value = "÷">÷</option>
      </select> 

      <input type = "text" name = "txtB"> = ? 
      <br>
      <input type = "submit" value = "計算">
      <input type = "reset" value = "クリア">
    </form>
  </body>
</html>


保存先 C:\phpdev\www\test\sample010
ファイル名 calc.php

<html>
  <head>
    <title>calc.php</title>
  </head>
  <body>
    <?php
      //値を取得
      $a = $_POST['txtA'];
      $b = $_POST['txtB'];
      $ope = $_POST['selOpe'];

      //セレクトボックスによって処理を変える
      switch ($ope) {
        case "+":
          $answer = $a + $b;
          break;
        case "−":
          $answer = $a - $b;
          break;
        case "×":
          $answer = $a * $b;
          break;
        case "÷":
          $answer = $a / $b;
          break;
        default:
          break;
      }

      //計算結果を表示
      print ($a." ".$ope." ".$b." = ".$answer."\n");
    ?>
    <br />
    <br />
    <a href="#" onclick="history.back(); return false;">前の画面へ戻る</a>
  </body>
</html>



*上記のプログラムはページの都合上、インデント(字下げ)が半角スペース2つになっていますが、実際には半角スペース4つにするのが好ましいです。インデントはプログラムの動作には影響しません。


【3】C:\phpdev にある 2K-NT-XP-phpdev_start.bat をダブルクリックして、phpdev を起動します。

php-02.gif

準備ができたら作成したPHPプログラムを実行してみましょう。


【4】ブラウザのアドレスに http://localhost/test/sample010/calc.html と入力し、実行します。


【5】calc.html の画面が表示されました。

php-74.gif


【6】テキストボックスに半角数字を入力し、セレクトボックスで計算方法を選択します。

php-75.gif


【7】「計算」ボタンをクリックします。

php-76.gif


【8】calc.php が表示されました。

php-77.gif


【9】計算結果をみると、セレクトボックスで選択した計算方法が反映されています。

php-78.gif


【10】「前の画面へ戻る」リンクをクリック

php-79.gif


【11】calc.html に戻りました。テキストボックスには値が入ったままです。

php-82.gif


【12】「クリア」ボタンをクリックします。

php-80.gif


【13】テキストボックスとセレクトボックスが初期状態になりました。

php-81.gif


【14】値やセレクトボックスをいろいろ変えて、動作を確認してください。


【解説】

■calc.html側

(1)フォームの method は post です。
<form name="form1" action="calc.php" method="post">


(2)新たにセレクトボックスを加えました。name は selOpe です。「+、−、×、÷」は全角で入力してください。

PHP側に渡されるのは、 「value = "+"」に書いた値です。「>+<」は画面に表示しているだけです。この二つは同じでも異なってもかまいません。大事なのは value のほうです。

<select name="selOpe" size=1>
  <option value = "+">+</option>
  <option value = "−">−</option>
  <option value = "×">×</option>
  <option value = "÷">÷</option>
</select> 


(3)新たに reset ボタンを加えました。クリックするとフォーム内の部品が初期状態になります。
<input type = "reset" value = "クリア">


■calc.php側

(1)値を取得している部分です。

$a = $_POST['txtA'];
$b = $_POST['txtB'];
$ope = $_POST['selOpe'];

*$ope には全角の「+、−、×、÷」が文字として代入されます。


(2)セレクトボックスで選択した値によって処理を変えています。$opeに入っている文字と一致した case が実行され、break でswitchの処理を抜けます。

全角の「+、−、×、÷」はユーザーが分かりやすいように画面に表示するために使われ、実際に計算する演算子は半角の「+、-、*、/」です。

switch ($ope) {
  case "+":
    $answer = $a + $b;
    break;
  case "−":
    $answer = $a - $b;
    break;
  case "×":
    $answer = $a * $b;
    break;
  case "÷":
    $answer = $a / $b;
    break;
  default:
    break;
}

*default は一致する case が無いときに実行されます。

*break を忘れると次の case も実行されますので注意してください。この性質をわざと利用することもあります。

* $ope が複数の case に一致した場合、実行されるのは最初の case だけですので、順番にも注意する必要があります。


(3)計算結果を表示している部分です。$ope にはセレクトボックスで選択した「+、−、×、÷」のどれかが入っています。
print ($a." ".$ope." ".$b." = ".$answer."\n");


スポンサードリンク






PHP初心者入門講座TOPへ