2014-04-01 36 views
1

即時通訊對PHP很新穎,希望有人能幫助我。我需要寫一個類,當下面的頁面迴響時,它會顯示答案。在PHP中添加參數PHP

<?php 
include_once('Math.php'); 

$Math = new _Math(); 

echo $Math->calculate(2,3,"+")."<br />"; 
echo $Math->calculate(2,3,"-")."<br />"; 
echo $Math->calculate(2,3,"*")."<br />"; 
echo $Math->calculate(9,3,"/")."<br />"; 
echo $Math->calculate(9,0,"/")."<br />"; 
echo $Math->calculate("3",3,"+")."<br />"; 
echo $Math->calculate(2.5,3,"+")."<br />"; 
echo $Math->calculate(3,3,"test")."<br />"; 

我認爲下面的代碼可以工作,但即時通訊除了空白的屏幕上什麼都沒有。

<?php 

class _Math { 

function calculate(2,3,"+"){ 
    $x = 2 + 3; 
     return $x; 
} 

function calculate(2,3,"-"){ 
     $x = 2 - 3; 
     return $x; 
} 

function calculate(2,3,"*"){ 
     $x = 2 * 3; 
     return $x; 
} 

function calculate(9,3,"/"){ 
     $x = 9/3; 
     return $x; 
} 

function calculate(9,0,"/"){ 
     $x = 9/0; 
     return $x; 
} 

function calculate("3",3,"+"){ 
     $x = "3"+3; 
     return $x; 
} 

function calculate(2.5,3,"+"){ 
     $x = 2.5+3; 
     return $x; 
} 

function calculate(3,3,"test"){ 
     $x = 3 test 3; 
     return $x; 
} 

林希望有人能指出我在正確的方向。希望我沒那麼遙遠。提前致謝。

+0

你有x個計算函數的數量 – Eddie

+0

聞起來像作業 –

+0

@JakeN是的,它聞起來像一個可怕的老師。 –

回答

4

函數參數必須是變量,而不是表達式,在the manual中進行了解釋。

這是部分實現:

class _Math 
{ 
    function calculate($op1, $op2, $type) 
    { 
     switch ($type) { 
      case '+': 
       return $op1 + $op2; 

      case '-': 
       return $op1 - $op2; 
      // ... 
     } 
    } 
} 

在函數內部,你寫一個switch將返回基於$type論證的結果。

0

這不是你如何定義函數。我什至不知道你想做什麼。

圓括號包含您交給函數的參數。所以你稱之爲這樣的功能:

$Math->calculate(2,3,"+") 

這些最後3件事是參數。你必須這樣定義函數:

function calculate($x, $y, $operation){ 
    //your code 
} 

不能使用相同的名稱定義多種功能,所以你必須檢查操作和計算它取決於輸入。例如,+

function calculate($x, $y, $operation){ 
    if($operation === "+") { 
     return $x + $y; 
    } 
} 
1

你函數應該是這樣的

function calculate(num1, num2, operation){ 
    switch(operation){ 
     case '+': 
       return $num1 + $num2; 
     break; 
     case '*': 
       return $num1 * $num2; 
     break; 

     // continue here :) 

    } 


} 

你只需要1種功能。和具有相同名稱的多個函數將在PHP中引發錯誤。