switch语句内的算术运算

时间:2015-08-28 22:35:56

标签: php switch-statement date-arithmetic

我想知道是否存在解决方案:

我需要在所有情况下使用算术运算,在最后使用算术运算来显示最后的结果。

的functions.php

<?php
static $overall;

$overall = 0;

$action = $_GET['action'];

switch ($action) {

case 'result1':

$overall = $overall + 5;

break;

case 'result2':

$overall = $overall + 15;

break;

case 'result3':

$overall = $overall + 2;

break;

case 'finalresult':

echo $overall;

break;

}
?>

我通过AJAX调用所有案例,最后我想调用'finalresult'案例。

2 个答案:

答案 0 :(得分:0)

当你将一个变量标记为静态时,你所做的就是在没有实例化类的情况下从类外部使它变为可用。例如:

class Test {

static $someVariable = 0;

}

现在您可以像这样调用该变量:

echo Test::$someVariable;

如果你创建了一个类的实例并递增了变量,然后调用原始类的变量,它将保持为0.像这样:

$instance = new Test();
$instance->someVariable++;

// This is now 1
echo $instance->someVariable;

// This remains 0
echo Test::$someVariable;

如果您有另一个未标记为静态的变量,则无法在没有实例化的情况下从类外部调用它。例如:

class Test {

public $differentVariable = 3;

}

echo Test::$differentVariable;

这不会运行并发出错误。

这里的困惑在于如何使用静态,以及如何使程序中的数据保持不变。

由于您在从另一个页面加载此脚本的网站上使用此功能,因此每次调用它都会运行并且$ overall重置为0.如果您希望该数字增加并保持不变(保留其即使在用户返回到另一个页面后,也有一些值,你有几个不错的选择。您可以了解并使用$ _SESSION。 (在每个PHP页面上放置session_start();你希望$ _SESSION变量可用,然后像在任何其他关联数组中那样存储信息)

您还可以学习如何使用mysqli或其他数据库接口。这一切都取决于您的整体程序设计,因为数据库信息将永久保留或直到手动重置,并且$ _SESSION数据只有在用户浏览器中存在cookie时才会存在。

希望有所帮助!

答案 1 :(得分:-1)

这个怎么样

     <?php

      static $overall; 

     $overall = 0; 

    $action = overallResult($_GET['action']);

    echo $action;

    public function overallResult($action)

    { 

   switch ($action) 

   {

   $overall = 0;

   case 'result1':

   $overall = $overall + 5;

   break; 

  case 'result2':

 $overall = $overall + 15;

 break;

 case 'result3':

 $overall = $overall + 2;

 break;

 case 'finalresult': 
 $overall = $overall;
 break;

 }
return $overall ;
    }

  ?>