PHP計算器

PHP是一種開源的伺服器端編程語言,它具有廣泛的應用,其中包括創建計算器應用程序。計算器應用程序是簡單但常見的應用程序,可以用於學生、商業人士和科學家等多種場景。PHP計算器是使用PHP語言和HTML(超文本標記語言)構建的應用程序。本文將從多個方面對PHP計算器進行詳細的闡述。

一、計算器的基本結構

一個簡單的計算器通常由輸入框、按鈕和輸出框構成。

<form method="post" action="calculator.php">
  <input type="text" name="num1">
  <select name="operator">
    <option value="add">+</option>
    <option value="subtract">-</option>
    <option value="multiply">*</option>
    <option value="divide">/</option>
  </select>
  <input type="text" name="num2">
  <input type="submit" name="submit" value="Calculate">
</form>

<?php
if(isset($_POST['submit'])){
  $num1 = $_POST['num1'];
  $num2 = $_POST['num2'];
  $operator = $_POST['operator'];
  switch($operator){
    case "add":
      $result = $num1 + $num2;
      break;
    case "subtract":
      $result = $num1 - $num2;
      break;
    case "multiply":
      $result = $num1 * $num2;
      break;
    case "divide":
      $result = $num1 / $num2;
      break;
  }
  echo "Result: " . $result;
}
?>

該示例展示了一個基本的計算器結構,由兩個輸入框和一個下拉框構成,用於選擇操作符(加、減、乘、除),以及一個計算按鈕和一個輸出框,用於顯示計算結果。

二、表單驗證

在用戶提交時,需要驗證輸入是否符合要求,否則會導致程序錯誤。以下是一個示例:

<form method="post" action="calculator.php">
  <input type="text" name="num1">
  <select name="operator">
    <option value="add">+</option>
    <option value="subtract">-</option>
    <option value="multiply">*</option>
    <option value="divide">/</option>
  </select>
  <input type="text" name="num2">
  <input type="submit" name="submit" value="Calculate">
</form>

<?php
if(isset($_POST['submit'])){
  $num1 = $_POST['num1'];
  $num2 = $_POST['num2'];
  $operator = $_POST['operator'];
  if(empty($num1) || empty($num2)){
    echo "Please enter both numbers.";
    exit;
  }
  if(!is_numeric($num1) || !is_numeric($num2)){
    echo "Please enter valid numbers.";
    exit;
  }
  switch($operator){
    case "add":
      $result = $num1 + $num2;
      break;
    case "subtract":
      $result = $num1 - $num2;
      break;
    case "multiply":
      $result = $num1 * $num2;
      break;
    case "divide":
      if($num2 == 0){
        echo "Cannot divide by zero.";
        exit;
      }
      $result = $num1 / $num2;
      break;
  }
  echo "Result: " . $result;
}
?>

該示例增加了對輸入值的驗證,以確保輸入的值不為空,且為數字。如果輸入值為空或不合法,則會顯示錯誤信息。此外,在除法計算時,還需要避免除以0的情況。

三、改進計算器

除了基本的計算器功能之外,還可以添加其他功能,使其更為實用。以下是一些常見的改進功能:

1. 按鈕樣式

更改按鈕樣式可以提高用戶體驗並使計算器更具吸引力,以下示例使用CSS為按鈕添加樣式:

<style>
  button{
    background-color: #4CAF50;
    color: white;
    padding: 14px 20px;
    margin: 8px 0;
    border: none;
    border-radius: 4px;
  }
  button:hover {
    background-color: #45a049;
  }
</style>
<form method="post" action="calculator.php">
  <input type="text" name="num1">
  <select name="operator">
    <option value="add">+</option>
    <option value="subtract">-</option>
    <option value="multiply">*</option>
    <option value="divide">/</option>
  </select>
  <input type="text" name="num2">
  <button type="submit" name="submit">Calculate</button>
</form>

2. 實時計算

添加JavaScript代碼可以實現實時計算。以下示例每當用戶輸入或更改值時,即會調用JavaScript函數進行計算並顯示結果:

<form method="post" action="calculator.php">
  <input type="text" name="num1" oninput="calculate()">
  <select name="operator" onchange="calculate()">
    <option value="add">+</option>
    <option value="subtract">-</option>
    <option value="multiply">*</option>
    <option value="divide">/</option>
  </select>
  <input type="text" name="num2" oninput="calculate()">
  <input type="text" name="result" readonly>
  <input type="hidden" name="submit">
</form>

<script>
function calculate(){
  var num1 = parseFloat(document.getElementsByName("num1")[0].value);
  var num2 = parseFloat(document.getElementsByName("num2")[0].value);
  var operator = document.getElementsByName("operator")[0].value;
  switch(operator){
    case "add":
      result = num1 + num2;
      break;
    case "subtract":
      result = num1 - num2;
      break;
    case "multiply":
      result = num1 * num2;
      break;
    case "divide":
      result = num1 / num2;
      break;
  }
  document.getElementsByName("result")[0].value = result.toFixed(2);
}
</script>

該示例使用JavaScript編寫了一個calculate()函數,用於獲取輸入框中的值並在結果框中顯示計算結果。在輸入框中添加oninput屬性和下拉框中添加onchange屬性,以確保每次用戶更改輸入時都會調用該函數。

3. 歷史記錄

使用PHP會話存儲功能,可將計算歷史記錄存儲在伺服器上。以下是一個示例,可以記錄最近十個計算記錄:

<?php
session_start();
if(isset($_POST['submit'])){
  $num1 = $_POST['num1'];
  $num2 = $_POST['num2'];
  $operator = $_POST['operator'];
  if(empty($num1) || empty($num2)){
    $error = "Please enter both numbers.";
  }
  else if(!is_numeric($num1) || !is_numeric($num2)){
    $error = "Please enter valid numbers.";
  }
  else{
    switch($operator){
      case "add":
        $result = $num1 + $num2;
        break;
      case "subtract":
        $result = $num1 - $num2;
        break;
      case "multiply":
        $result = $num1 * $num2;
        break;
      case "divide":
        if($num2 == 0){
          $error = "Cannot divide by zero.";
        }
        else{
          $result = $num1 / $num2;
        }
        break;
    }
    if(!isset($error)){
      $history = $_SESSION['history'];
      if(count($history) > 9){
        array_shift($history);
      }
      array_push($history, "$num1 $operator $num2 = $result");
      $_SESSION['history'] = $history;
    }
  }
}
if(isset($_POST['clear'])){
  unset($_SESSION['history']);
}
?>

<form method="post" action="calculator.php">
  <input type="text" name="num1">
  <select name="operator">
    <option value="add">+</option>
    <option value="subtract">-</option>
    <option value="multiply">*</option>
    <option value="divide">/</option>
  </select>
  <input type="text" name="num2"><br>
  <input type="submit" name="submit" value="Calculate">
  <input type="submit" name="clear" value="Clear History">
</form>

<?php
if(isset($error)){
  echo "<p>$error</p>";
}
if(isset($_SESSION['history'])){
  echo "<h3>History</h3>";
  foreach(array_reverse($_SESSION['history']) as $value){
    echo "<p>$value</p>";
  }
}
?>

該示例使用PHP會話存儲來存儲歷史記錄。在每次成功計算之後,將新計算添加到$history數組中,並在向用戶顯示歷史記錄時,使用array_reverse()和foreach()函數輸出數組內容。當數組的大小超過10時,使用array_shift()函數從數組前面刪除最舊的計算。

總結

PHP計算器是一種常見的應用程序,用戶可以通過輸入數字和操作符計算結果。添加表單驗證、JavaScript實時計算和歷史記錄等功能,可以幫助提高用戶體驗並使應用更具實用價值。通過使用PHP、JavaScript和會話存儲,我們可以開發一個簡單和實用的計算器應用程序。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/245818.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:11
下一篇 2024-12-12 13:11

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • 匯率兌換計算器

    匯率兌換計算器是一款方便快捷的工具。它可以將一種貨幣的價值換算成另一種貨幣的價值,幫助人們更好地理解並計算不同貨幣之間的價格。 一、頁面設計 匯率兌換計算器的頁面設計應該簡潔明了,…

    編程 2025-04-27
  • Python製作簡易計算器

    本文將從多個方面,詳細闡述如何使用Python製作簡易計算器。 一、GUI界面設計 要製作一個簡易計算器,我們需要先計劃好它的GUI界面,以方便用戶的使用。在Python中,我們可…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • 工期日曆天計算器

    一、計算器介紹 工期日曆天計算器是一款計算機程序,用於計算一個任務或項目的完成時間。 用戶可以指定開始日期,工作日曆和任務工期。該計算器能夠自動排除非工作日和特殊工作日期,以提供客…

    編程 2025-04-24

發表回復

登錄後才能評論