ホームページ >バックエンド開発 >PHPチュートリアル >PHP 基本チュートリアル 7: 電卓の実装
電卓の実装
スーパーグローバル変数
htmlネストされたPHPコード
PHP言語が開発されたサーバー-サイド言語はデータ処理用です。PHP の開発では、必然的にデータを転送するためにフロントエンド ページとの対話が必要になります。では、フォアグラウンドからデータを取得してバックエンドに渡すにはどうすればよいでしょうか? http プロトコルを使用して情報を送信します。反対側のブログ http://www.php.cn/ を読むことができます。
今日の電卓ケースは、データの前後にデータを送信するように設計されています。その一般的な機能は、フロント ページにデータを入力し、それをバックエンドに送信し、バックエンドでデータを処理してからフロントエンドに戻ることです。
フロントエンドのHTMLページCalculationMachine.php
<?php $value = isset($_GET['value']) ? $_GET['value'] : ''; ?> <!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 = 'cm'> <form action="NumCount.php" method="post"> 数字1:<input type="text" name="num1"><br> 数字2:<input type="text" name="num2"><br> <select name = 'oper'> <option value = 'plus'>+</option> <option value = 'subtract'>-</option> <option value = 'multiply'>*</option> <option value = 'pided'>/</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 './function.php'; //从html页面得到数据 $num1 = isset($_POST['num1']) ? $_POST['num1'] : 0; $num2 = isset($_POST['num2']) ? $_POST['num2'] : 0; $oper = isset($_POST['oper']) ? $_POST['oper'] : ''; //判断是否是数字 if(!is_numeric($num1) || !is_numeric($num2)){ echo "<script>alert('请输入数字')</script>"; Header("Refresh:0;url = ./CalculatingMachine.php"); } //得到计算后的值 $value = 0; //通过switch判断是那种运算 switch($oper){ case 'plus': $value = plus($num1,$num2); break; case 'subtract': $value = subtract($num1,$num2); break; case 'multiply': $value = multiply($num1,$num2); break; case 'pided': $value = pided($num1,$num2); break; default: echo ''; } //把计算后的值传递给前台。 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; }
フロントエンドページ:
バックエンド処理 次に、データはフロント デスクに送信されます。
上記のバックエンド コードでは、データがスーパー グローバル変数 $_POST[] を通じて受信されることがわかります。それでは、PHP のスーパーグローバル変数とは何であり、その機能は何でしょうか?
PHP の定義済み変数の多くは「スーパーグローバル」です。これは、スクリプトのスコープ全体で使用できることを意味します。これらは、 global $variable; を実行せずに、関数またはメソッド内でアクセスできます。
PHP におけるスーパーグローバルの分類:
$GLOBALS すべての変数を含むグローバル組み合わせ配列。変数の名前は配列のキーです。これは、スクリプトのすべてのスコープで使用できることを意味します。関数またはメソッド内でグローバル $variable を使用してアクセスする必要はありません。
<?php $a = 12; //整型 $str = '超全局变量'; $arr = array(1,2,3,4); //数组 var_dump($GLOBALS['a']); echo '<br>'; var_dump($GLOBALS['str']); echo '<br>'; var_dump($GLOBALS['arr']);
上記のスーパーグローバル変数 $GLOBALS が、コード内の変数を自動的に保存していることがわかります。
$_SERVER は、ヘッダー、パス、スクリプトの場所などの情報を含む配列です。この配列内の項目は Web サーバーによって作成されます。すべてのサーバーがすべてのアイテムを提供するという保証はありません。サーバーは一部のアイテムを無視したり、ここにリストされていないアイテムを提供したりする可能性があります。
このスーパー グローバル変数は http プロトコルにも関連しており、データの送信時にいくつかの情報を取得できます。
<?php echo $_SERVER['SERVER_ADDR']; ......结果....... 127.0.0.1
上記はサーバー内の値の 1 つです。他の値については、ヘルプドキュメントを確認してください。
$_GET[] URL パラメーターを介して現在のスクリプトに渡される変数の配列。 Web ページ上でデータを送信するためによく使用されるメソッドは GET と POST の 2 つで、このスーパー グローバル変数は、GET メソッドで渡された値を保存するためのものです
$_POST[] は、HTTP 経由で現在のスクリプトに渡されます。 POST メソッド 変数の配列。POST 経由でデータが転送される場合、このスーパーグローバル変数は
在上面计算器的前台代码中我们可以看到,当数据处理完传递到前台后,通过在p标签中写php代码来显示数据。从中我们可以看到php是怎么嵌套在html代码中
<?php code?>
在这里的开发都是php代码和html代码进行嵌套,数据和页面进行一起的开发,什么模式都没用到。
计算机的案列几乎包含了前面的所学,把所有的都化为己用。学习过得知识要学会运用。
以上就是PHP基础教程七之计算器的实现的内容,更多相关内容请关注PHP中文网(www.php.cn)!