我想知道是否存在解决方案:
我需要在所有情况下使用算术运算,在最后使用算术运算来显示最后的结果。
的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'案例。
答案 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 ;
}
?>