简体   繁体   English

PHP变量计算

[英]PHP variable calculation

I am quite a beginner in PHP and have created a calculator and I am posting the calculation as a variable(q) to a php file and want to make the calculation and echo it back to the box as the result. 我是PHP的初学者,已经创建了一个计算器,并且将计算结果作为变量(q)发布到php文件,并希望进行计算并将其作为结果回显到框内。

Going through the php function library I could not locate a function the can help me with that like 'eval' in JavaScript. 通过php函数库,我找不到函数可以帮助我解决JavaScript中的“ eval”问题。

The reason I am not using 'eval' is that the calculation must happen on the server side. 我不使用“ eval”的原因是计算必须在服务器端进行。

Any help will be greatly appreciated. 任何帮助将不胜感激。

JAVASCRIPT JAVASCRIPT

$('.equal').click(function(){
  $.post('calculator.php',{q: $('.result').val()} ,function(a){
    $('.result').val(a).show();
  });
});

PHP 的PHP

<?php

  $_POST[q];

?>

HTML HTML

<!DOCTYPE html>
<html >
<head>
  <meta charset="UTF-8">
  <title>calculator</title>


  <link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css'>
<link rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/animate.css/3.5.2/animate.min.css'>

      <link rel="stylesheet" href="css/style.css">

</head>

<body>

  <div class="container col-sm-2 text-center" id="calc">

      <div class="row">
        <form name="calc">
          <input type="text" class="screen text-right result" name="result" placeholder="0" readonly>
        </form>
      </div>


    <!-- First row -->
      <div class = "row">
        <button class="btn btn-primary number" data-key="1" type="button">1</button>
        <button class="btn btn-primary number" data-key="2" type="button">2</button>
        <button class="btn btn-primary number" data-key="3" type="button">3</button>
        <button class="btn btn-danger"  data-key="reset" type="button">C</button>
      </div>

      <!-- Second row -->
      <div class = "row">
        <button class="btn btn-primary number" data-key="4" type="button">4</button>
        <button class="btn btn-primary number" data-key="5" type="button">5</button>
        <button class="btn btn-primary number" data-key="6" type="button">6</button>
        <button class="btn btn-warning number" data-key="+" type="button">+</button>
      </div>

      <!-- Third row -->
      <div class = "row">
        <button class="btn btn-primary number" data-key="7" type="button">7</button>
        <button class="btn btn-primary number" data-key="8" type="button">8</button>
        <button class="btn btn-primary number" data-key="9" type="button">9</button>
        <button class="btn btn-warning number" data-key="-" type="button">-</button>
      </div>

      <!-- Fourth row-->
      <div class = "row">
        <button class="btn btn-primary number" data-key="0" type="button">0</button>
        <button class="btn btn-primary number" data-key="." type="button">.</button>
        <button class="btn btn-warning number" data-key="/" type="button">/</button>
        <button class="btn btn-warning number" data-key="*" type="button">*</button>
      </div>

      <div class="row">
        <button class="btn btn-success btn-lg equal" type="button">=</button>
      </div>

  </div>

  <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js'></script>
  <script src='https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.min.js'></script>

    <script src="js/calculator.js"></script>

<!-- jquery fade in function -->

<script>

$( "#calc" ).hide( 500 ).delay( 1500 ).show( 300 );

</script>


</body>
</html>

You can find a list of related PHP functions here: 您可以在此处找到相关的PHP函数列表:
http://www.w3schools.com/php/php_ref_math.asp http://www.w3schools.com/php/php_ref_math.asp

Callback functions might be helpful, here is some documentation: 回调函数可能会有所帮助,这是一些文档:
http://php.net/manual/en/language.types.callable.php http://php.net/manual/zh/language.types.callable.php

An example of a callback function: 回调函数的示例:

<?php

// Just an example, two numbers passed with GET
// $calc_choice will be add, subtract, etc.

$num_one = $_GET['number_one']);
$num_two = $_GET['number_two']);
$calc_choice = $_GET['calculation'];

// passing these variables into a callback function
customEval($num_one, $num_two, $calc_choice);

// This is abstraction
// $callback is going to be a function we pass
// You can name $numOne and $numTwo anything you would like

function customEval($numOne, $numTwo, $callback){
    $answer = $callback($numOne, $numTwo);
    echo '$answer';
}

//This will add two numbers together and return them
//What gets returns is what will be echoed in our callback function
function add($numOne, $numTwo){
    return $numOne + $numTwo;
}

// You can make as many as you like
function subtract($numOne, $numTwo){
    return $numOne - $numTwo;
}

?>

In use: 正在使用:

$num_one = 5;
$num_two = 10;
$calc_choice = "add";

// our function would be doing this behind the scene
customEval(5, 10, "add"){
    // Because our add function returns 15 in this case
    echo '15'
}  

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM