ホームページ >バックエンド開発 >PHPチュートリアル >PHP 基本チュートリアル 7: 電卓の実装

PHP 基本チュートリアル 7: 電卓の実装

黄舟
黄舟オリジナル
2017-03-01 09:42:471779ブラウズ

このセクションで説明する内容

  • 電卓の実装

  • スーパーグローバル変数

  • htmlネストされたPHPコード

まえがき

PHP言語が開発されたサーバー-サイド言語はデータ処理用です。PHP の開発では、必然的にデータを転送するためにフロントエンド ページとの対話が必要になります。では、フォアグラウンドからデータを取得してバックエンドに渡すにはどうすればよいでしょうか? http プロトコルを使用して情報を送信します。反対側のブログ http://www.php.cn/ を読むことができます。

今日の電卓ケースは、データの前後にデータを送信するように設計されています。その一般的な機能は、フロント ページにデータを入力し、それをバックエンドに送信し、バックエンドでデータを処理してからフロントエンドに戻ることです。

電卓の実装

フロントエンドのHTMLページCalculationMachine.php

<?php
    $value = isset($_GET[&#39;value&#39;]) ? $_GET[&#39;value&#39;] : &#39;&#39;;
?>
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>计算器的实现</title>
</head>
<style type="text/css">
    .cm{
        text-align:center;
        margin-top:100px;
        line-height:30px;
    }

</style>
<body>
    <p class = &#39;cm&#39;>
    <form action="NumCount.php" method="post">
        数字1:<input type="text" name="num1"><br>
        数字2:<input type="text" name="num2"><br>
        <select name = &#39;oper&#39;>
            <option value = &#39;plus&#39;>+</option>
            <option value = &#39;subtract&#39;>-</option>
            <option value = &#39;multiply&#39;>*</option>
            <option value = &#39;pided&#39;>/</option>
        </select><br>

        <input type="submit" value="计算">
    </form>
    <p><?php echo $value;?></p>
    </p>
</body>
</html>

フロントエンドページは、postメソッドを通じてユーザーの入力データをバックエンドのNumCount.phpに渡します。フロントエンドのファイルサフィックスは終了します。 php の場合、バックグラウンドで処理されたデータがデータ表示のためにフロントデスクに送信されるときに、最も重要な点は、接尾辞に php を持つファイルは html コードを書くことができますが、接尾辞に html を持つファイルは php を書くことができないということです。コード (設定ファイルの Set に記述できます);

バックグラウンド処理ページ: NumCount.php

<?php

    //引入运算的函数
    require_once &#39;./function.php&#39;;

    //从html页面得到数据
    $num1 = isset($_POST[&#39;num1&#39;]) ? $_POST[&#39;num1&#39;] : 0;
    $num2 = isset($_POST[&#39;num2&#39;]) ? $_POST[&#39;num2&#39;] : 0;
    $oper = isset($_POST[&#39;oper&#39;]) ? $_POST[&#39;oper&#39;] : &#39;&#39;;

    //判断是否是数字
    if(!is_numeric($num1) || !is_numeric($num2)){
        echo "<script>alert(&#39;请输入数字&#39;)</script>";
        Header("Refresh:0;url = ./CalculatingMachine.php");
    }

    //得到计算后的值
    $value = 0;
    //通过switch判断是那种运算
    switch($oper){
        case &#39;plus&#39;:
            $value = plus($num1,$num2);
            break;
        case &#39;subtract&#39;:
            $value = subtract($num1,$num2);
            break;
        case &#39;multiply&#39;:
            $value = multiply($num1,$num2);
            break;
        case &#39;pided&#39;:
            $value = pided($num1,$num2);
            break;
        default:
            echo &#39;&#39;;
    }

    //把计算后的值传递给前台。
    Header("Refresh:0;url = ./CalculatingMachine.php?value={$value}");

バックグラウンド受付ページ、データは post メソッドを通じて送信されるため、スーパー メソッドを通じてデータを取得できます。グローバル変数 $_POST[] を使用し、データを処理できるようになります。検証、数値でない場合、ダイアログ ボックスがポップアップ表示され、プロンプトが表示され、ヘッダーを介してフロント デスクにジャンプします。

バックグラウンドのデータ操作関数はファイルにカプセル化されており、ファイルをインポートすることで使用できます

操作関数はファイルにカプセル化されています: function.php

<?php

    //加
    function plus($num1,$num2){
        return $num1 + $num2;
    }

    //减
    function subtract($num1,$num2){
        return $num1 - $num2;
    }

    //乘
    function multiply($num1,$num2){
        return $num1 * $num2;
    }

    //除
    function pided($num1,$num2){
        return $num1 / $num2;
    }

フロントエンドページ:
PHP 基本チュートリアル 7: 電卓の実装

バックエンド処理 次に、データはフロント デスクに送信されます。
PHP 基本チュートリアル 7: 電卓の実装

スーパー グローバル変数

上記のバックエンド コードでは、データがスーパー グローバル変数 $_POST[] を通じて受信されることがわかります。それでは、PHP のスーパーグローバル変数とは何であり、その機能は何でしょうか?

PHP の定義済み変数の多くは「スーパーグローバル」です。これは、スクリプトのスコープ全体で使用できることを意味します。これらは、 global $variable; を実行せずに、関数またはメソッド内でアクセスできます。

PHP におけるスーパーグローバルの分類:

  • $GLOBALS すべての変数を含むグローバル組み合わせ配列。変数の名前は配列のキーです。これは、スクリプトのすべてのスコープで使用できることを意味します。関数またはメソッド内でグローバル $variable を使用してアクセスする必要はありません。

    <?php
    $a = 12; //整型
    $str = &#39;超全局变量&#39;;
    $arr = array(1,2,3,4); //数组
    
    var_dump($GLOBALS[&#39;a&#39;]);
    echo &#39;<br>&#39;;
    var_dump($GLOBALS[&#39;str&#39;]);
    echo &#39;<br>&#39;;
    var_dump($GLOBALS[&#39;arr&#39;]);

    PHP 基本チュートリアル 7: 電卓の実装

上記のスーパーグローバル変数 $GLOBALS が、コード内の変数を自動的に保存していることがわかります。

  • $_SERVER は、ヘッダー、パス、スクリプトの場所などの情報を含む配列です。この配列内の項目は Web サーバーによって作成されます。すべてのサーバーがすべてのアイテムを提供するという保証はありません。サーバーは一部のアイテムを無視したり、ここにリストされていないアイテムを提供したりする可能性があります。
    このスーパー グローバル変数は http プロトコルにも関連しており、データの送信時にいくつかの情報を取得できます。

    <?php
        echo $_SERVER[&#39;SERVER_ADDR&#39;];
        ......结果.......
        127.0.0.1

    上記はサーバー内の値の 1 つです。他の値については、ヘルプドキュメントを確認してください。

  • $_GET[] URL パラメーターを介して現在のスクリプトに渡される変数の配列。 Web ページ上でデータを送信するためによく使用されるメソッドは GET と POST の 2 つで、このスーパー グローバル変数は、GET メソッドで渡された値を保存するためのものです

  • $_POST[] は、HTTP 経由で現在のスクリプトに渡されます。 POST メソッド 変数の配列。POST 経由でデータが転送される場合、このスーパーグローバル変数は

  • $_REQUEST[] を受け入れます。上記の 2 つのスーパーグローバル変数は、異なる転送メソッドに従って異なる値を格納します。どちらの転送方法も保存されます。

次のスーパーグローバル変数は、将来的に徐々に導入される予定です

  • $_FILES[] ファイルアップロード変数。HTTP POST を通じて現在のスクリプトのプロジェクトの配列にアップロードされます。 後ほどファイルをアップロードした際に詳しく紹介させていただきます。

  • $_COOKIE[] HTTP Cookie を通じて現在のスクリプトに渡される変数の配列

  • $_SESSION[] 現在のスクリプトで使用できる SESSION 変数の配列。詳しい使用方法については、セッション機能を通じてご覧いただけます。

上記は PHP のスーパーグローバル変数であり、開発中に随時処理されます。

html中嵌入php代码

在上面计算器的前台代码中我们可以看到,当数据处理完传递到前台后,通过在p标签中写php代码来显示数据。从中我们可以看到php是怎么嵌套在html代码中

    <?php code?>

在这里的开发都是php代码和html代码进行嵌套,数据和页面进行一起的开发,什么模式都没用到。

总结

计算机的案列几乎包含了前面的所学,把所有的都化为己用。学习过得知识要学会运用。

 以上就是PHP基础教程七之计算器的实现的内容,更多相关内容请关注PHP中文网(www.php.cn)!


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