Арифметическая операция внутри оператора switch

Я хочу знать, существует ли решение для этого:

Мне нужно использовать арифметические операции внутри всех дел и в финале, чтобы показать последний результат.

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, и в конце я хочу назвать дело «финальным результатом».

-2

Решение

Когда вы помечаете переменную как статическую, вы делаете ее доступной вне класса без создания экземпляра класса. Например:

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 существует в браузере пользователя.

Надеюсь, это поможет!

0

Другие решения

как насчет этого

     <?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 ;
}

?>
-1

По вопросам рекламы [email protected]