2012-03-27 103 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? 除了醜陋的格式,這使得閱讀代碼變得非常痛苦,代碼中存在更嚴重的缺陷。 爲什麼當你將它們作爲參數傳遞給每個函數時,你將這些值存儲在類中?