2014-04-01 35 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中引发错误。