Когда вы отмечаете переменную Статическом, что вы делаете, что делает его доступным из-за пределов класса без конкретизации класса. Например:
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 существует в браузере пользователя.
Надеюсь, что это поможет!
Так в чем же проблема? – Mureinik
Вы говорите, что вышеуказанный код не работает? –
Ну, это не совсем так ... вы, наверное, путаете 'static' с' persistent'? –