ホームページ  >  記事  >  バックエンド開発  >  PHP学習ノート - シンプルな電卓スクリプト PHP入門から熟練まで PHP学習サイト php100

PHP学習ノート - シンプルな電卓スクリプト PHP入門から熟練まで PHP学習サイト php100

WBOY
WBOYオリジナル
2016-07-29 08:49:061546ブラウズ

今回 PHP で実装されるのは、ユーザーが 2 つの数値を入力し、加算、減算、乗算、除算の 4 つの演算子から 1 つ以上を選択して計算結果を表示するというものです。

私のアイデアは次のとおりです。次のようなフォームを HTML で作成します。 1. ユーザーが加算、減算、乗算、除算の演算を選択できるようにする選択ボックス。選択した結果は演算配列に保存されます。ユーザーが必要な値を入力できるようにします。計算された数値と入力結果は num 配列に保存されます。 3. フォームの内容を送信するための「送信」ボタン。フォームは、POST メソッドを使用して処理するためにこの PHP ページに直接送信されます。$_POST['operation'] にはオペレーター情報が格納され、$_POST[num'] には操作に参加するデータが格納されます。 PHP スクリプトで演算子を決定し、対応する計算を実行し、結果を $msg の配列に保存し、最後に $msg を出力します。

それでは、コードに直接進みましょう:

<?php $result=array();  //用来保存计算结果的数组
$msg=array();     //保存结果消息的数组
$i=0;             //结果的个数
$error="";        //错误消息
if(isset($_POST[&#39;operation&#39;])){    //如果已经选择了运算符
    if((""!=$_POST[&#39;num&#39;][0])&&""!=($_POST[&#39;num&#39;][1])){   //输入文档框内容部位空
    $num1=(double)$_POST[&#39;num&#39;][0];                       //从字符串强制转换成double型的类型数据
    $num2=(double)$_POST[&#39;num&#39;][1];
    foreach($_POST[&#39;operation&#39;] as $op){                   //读取所选择的运算符
        switch($op){                                       //判断运算符属于哪一类
            case &#39;add&#39;:
               $result[$i]=$num1+$num2;                     //加法
               $msg[$i]="$num1"."+"."$num2"."="."$result[$i]";//将完整的算数式保存到消息数组里面     
               $i++;            
               break;
               
            case &#39;sub&#39;:
               $result[$i]=$num1-$num2;                      //减法
               $msg[$i]="$num1"."-"."$num2"."="."$result[$i]";//将完整的算数式保存到消息数组里面 
               $i++;            
               break;
               
            case &#39;mul&#39;:
               $result[$i]=$num1*$num2;                       //乘法
               $msg[$i]="$num1"."*"."$num2"."="."$result[$i]";//将完整的算数式保存到消息数组里面 
               $i++;            
               break;
               
            case &#39;div&#39;:
               if($_POST[&#39;num&#39;][1]!=0){                       //保证被除数不能为0
               $result[$i]=$num1/$num2;                        //除法
               $msg[$i]="$num1"."/"."$num2"."="."$result[$i]"; //将完整的算数式保存到消息数组里面 
               $i++;
               }
               else $error="被除数不能为0\n" ;                //如果除数为0,错误消息有提示       
               break;
             }
        }
    }
    else {                                                    //输入的数字有为空的情况
        if( ""!=$_POST[&#39;num&#39;][0] )              
            $error.="请输入num 1 \n";                         //记录到错误消息中
        if( ""!=$_POST[&#39;num&#39;][1] )
            $error.="请输入num 2 \n"; 
         
        }
}

?>




请选择运算符:



"; echo "计算结果如下:"."
"; foreach($msg as $str) echo $str."
"; echo $error; } ?>

実行中のインターフェイスは次のとおりです:

PHP学習ノート - シンプルな電卓スクリプト PHP入門から熟練まで PHP学習サイト php100

すべての演算子が選択されている場合:

PHP学習ノート - シンプルな電卓スクリプト PHP入門から熟練まで PHP学習サイト php100

評価と改善点:

テストの結果、各データの入力と送信後に計算結果が表示されるが、ページも更新され、最初に入力されたデータが失われるなど、いくつかの欠陥があることが判明しました。改善された結果は次のようになります。送信するたびに、テキスト ボックスは最後のレコードを保存しますが、チェック ボックスは保存されません。具体的な実装は、テキスト ボックスにプロパティを設定することです。これについてはあまり詳しくありませんし、今それを行うのが面倒なので、今は置いておきます。

コードに関しては、PHPスクリプト内で使用される変数が多く、その分メモリ消費も大きいため、$result[]、$num1、$num2などの変数が他のスクリプトから呼び出されていなければ、省略しても構いませんが、拡張性を高めるために、元のコードを大幅に変更する必要はありません。

興味のある読者は http://www.beartracker.top/server1.php にアクセスしてテストしてください ^_^

上記では、PHP 学習ノート - PHP 学習コンテンツを含む簡単な計算スクリプトを紹介しました。PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。