Я хочу знать, существует ли решение для этого:
Мне нужно использовать арифметические операции внутри всех дел и в финале, чтобы показать последний результат.
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, и в конце я хочу назвать дело «финальным результатом».
Когда вы помечаете переменную как статическую, вы делаете ее доступной вне класса без создания экземпляра класса. Например:
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;
Это не будет работать и выдаст ошибку.
Путаница здесь заключается в том, как использовать статические и как сохранить данные в вашей программе.
Так как вы используете это на веб-сайте, где вы загружаете этот скрипт с другой страницы, каждый раз, когда он вызывается, он запускается, и $ total сбрасывается в 0. Если вы хотите, чтобы это число увеличивалось и сохранялось (сохраните его значение даже после пользователь возвращается на другую страницу), у вас есть несколько хороших вариантов. Вы можете узнать и использовать $ _SESSION. (поместите session_start (); на каждой странице PHP вы хотите, чтобы переменная $ _SESSION была доступна, а затем сохраняете в ней информацию, как и в любом другом ассоциативном массиве)
Вы также можете узнать, как использовать mysqli или какой-либо другой интерфейс базы данных. Все это зависит от общего дизайна вашей программы, поскольку информация в базе данных будет сохраняться постоянно или до тех пор, пока не будет сброшена вручную, а данные $ _SESSION будут действовать только до тех пор, пока файл cookie существует в браузере пользователя.
Надеюсь, это поможет!
как насчет этого
<?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 ;
}
?>