面向对象的操作PHP

时间:2012-03-27 10:13:40

标签: php calculator

<?php
// define class
class Calculator {

  //class variables:
  var $sum;
  var $dif;
  var $multi;
  var $div;


  //Class member functions or methods:
  function add($arr) {
    $this->sum=array_sum($arr);
  }

  function substract($arr){
    for ($i=0;$i<count($arr);$i++){
      $dif=$dif - $arr[$i+1];
      $this->dif=dif-arr[$i];
    }
  }

  function multiply($arr) {
    $this->multi=$number1 * $number2;
  }

  function devide($arr) {
    $this->div=$number1/$number2;
  }
}


$txtfield = $_POST['number1'];
$arr = explode(' ',trim($txtfield));


//Create a class instance:
$calc = new Calculator();

//Call class methods:
$calc->add($arr); 
$calc->substract($arr); 
$calc->multiply($arr); 
$calc->devide($num1,$num2);

//Display output:
echo "Sum=".$calc->sum." <br>"; 
echo "Difference =".$calc->dif." <br>"; 
echo "Multilpication=".$calc->multi." <br>"; 
echo "Division=".$calc->div."<br>";

?>

为什么我的代码没有显示正确的值?我尝试输入3个值仍然不会返回正确的结果。它似乎没有很好地执行操作。真的需要紧急帮助: http://modkoredesigns.com/phpexam/这是测试uRL

我尝试在文本框中输入2 2 2并且它没有显示答案

2 个答案:

答案 0 :(得分:2)

首先,您在该行上收到错误:

$this->dif=dif-arr[$i];

你错过了两个$

然后,$number1$number2来自哪里? (同时为multiply()devide()

答案 1 :(得分:1)

您正在使用函数中的完整错误变量。你在哪里从乘法函数得到$ number1或$ number2? 除了丑陋的格式化,这使得阅读代码成为一种真正的痛苦,代码中存在更严重的缺陷。 当你将它们作为参数提供给每个函数时,为什么要将值存储在类中?