2012-03-27 74 views
0
<?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面向对象操作PHP

我试着在搜索框中输入2 2 2和它不显示答案

+0

您在这里混合了多个想法。如果您1)更正了代码中的缩进级别,2)将类定义与使用它的代码分开(并从'$ _POST'中读取值),我可以帮助您。 – Tadeck 2012-03-27 10:16:29

+0

您可能会觉得这个演讲很有用:http://www.youtube.com/watch?v = 4F72VULWFvc – 2012-03-27 10:23:00

回答

2

首先,你得该线路上的错误:

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

你少了两根$

然后,在来自$number1$number2? (在multiply()devide()中)

1

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