PHP基礎教學七之計算器的實現
本節講解的內容
#計算器的實作
超全局變數
html中巢狀php程式碼
#前言
PHP語言是開發伺服器端的語言,是對資料的處理,PHP的開發不可避免的要與前台的頁面進行交互,從而進行資料的傳遞。那我們是怎麼從前台取得資料並傳遞到後台的呢?它們利用http協定進行資訊的傳輸。可以看另外一邊部落格http://www.php.cn/。
而今天的計算器的案例,設計到資料的前後台資料的傳輸。它的大致功能是在前台的頁面填寫數據,提交到後台,後台處理完數據,然後返回到前台。
計算器的實作
前台的一個html頁面CalculatingMachine.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程式碼(可以在設定檔中設定);
後台的處理頁面: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[]得到數據,並進行數據的驗證,當不是數字的時候,彈出對話框進行提示,並透過header跳到前台。
在後台對資料的操作函數是封裝到了一個檔案中的,透過引入檔案進行使用,
運算的函數封裝到一個檔案中: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 一個包含了全部變數的全域組合 陣列 。變數的名字就是數組的鍵。這表示其在腳本的所有作用域中都是可用的。不需要在函數或方法中用 global $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 是一個包含了頭資訊(header)、路徑(path)、以及腳本位置(script locations)等等資訊的陣列。這個數組中的項目是由 Web 伺服器所建立。不能保證每個伺服器都提供全部項目;伺服器可能會忽略一些,或提供一些沒有在這裡列舉出來的項目。
這個超全局變數和http協定也有些關係,在這個變數中,我們可以得到我們在進行資料傳輸時的一些資訊。<?php echo $_SERVER['SERVER_ADDR']; ......结果....... 127.0.0.1
登入後複製上面只是server中的其中一個值而已,得到伺服器的ip位址,別的值可以查看幫助文件。
$_GET[] 透過 URL 參數傳遞給目前腳本的變數的陣列。 在網頁的傳輸資料是,常用的有兩種方式,一個GET和一個POST,而這個超全域變數就是保存透過GET方式傳的值
$_POST[] 透過HTTP POST 方法傳遞給目前腳本的變數的陣列,當透過POST方式傳遞資料的時候,這個超全域變數就會接受
$_REQUEST[],在上面兩個超全域變數根據不同的傳遞方式,儲存不同的值,而這個變數是兩種傳遞方式的數值都會保存。
以下的超全域變數會慢慢介紹
$_FILES[] 檔案上傳變量,透過HTTP POST 方式上傳到目前腳本的項目的數組。 在後面的文件上傳時,再詳細介紹。
$_COOKIE[] 透過HTTP Cookies 方式傳遞給目前腳本的變數的陣列
$_SESSION[] 目前腳本可用SESSION 變數的數組。更多關於如何使用的信息,可以透過 Session 函數進行了解。
上面的就是PHP中的超全域變量,在開發中我們會隨時和他們打交道。
html中嵌入php代码
在上面计算器的前台代码中我们可以看到,当数据处理完传递到前台后,通过在p标签中写php代码来显示数据。从中我们可以看到php是怎么嵌套在html代码中
<?php code?>
在这里的开发都是php代码和html代码进行嵌套,数据和页面进行一起的开发,什么模式都没用到。
总结
计算机的案列几乎包含了前面的所学,把所有的都化为己用。学习过得知识要学会运用。
以上就是PHP基础教程七之计算器的实现的内容,更多相关内容请关注PHP中文网(www.php.cn)!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP和Python各有優勢,選擇依據項目需求。 1.PHP適合web開發,尤其快速開發和維護網站。 2.Python適用於數據科學、機器學習和人工智能,語法簡潔,適合初學者。

PHP在電子商務、內容管理系統和API開發中廣泛應用。 1)電子商務:用於購物車功能和支付處理。 2)內容管理系統:用於動態內容生成和用戶管理。 3)API開發:用於RESTfulAPI開發和API安全性。通過性能優化和最佳實踐,PHP應用的效率和可維護性得以提升。

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

PHP仍然具有活力,其在現代編程領域中依然佔據重要地位。 1)PHP的簡單易學和強大社區支持使其在Web開發中廣泛應用;2)其靈活性和穩定性使其在處理Web表單、數據庫操作和文件處理等方面表現出色;3)PHP不斷進化和優化,適用於初學者和經驗豐富的開發者。

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

PHP和Python各有優劣,選擇取決於項目需求和個人偏好。 1.PHP適合快速開發和維護大型Web應用。 2.Python在數據科學和機器學習領域佔據主導地位。

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。
