PHP & quot; Статический & quot; Ключевое слово вводит в заблуждение, не сохраняя новое значение

Хорошо, у меня возникли проблемы с ключевым словом static

в соответствии с w3wchools.com ниже

Обычно, когда функция завершается / выполняется, все ее переменные удаляются. Однако иногда мы хотим, чтобы локальная переменная НЕ удалялась. Нам это нужно для дальнейшей работы.

Чтобы сделать это, используйте ключевое слово static при первом объявлении переменной:

//w3school code below
function myTest() {
static $x = 0;
echo $x;
$x++;
myTest();
myTest();
myTest();
}

теперь, что это будет делать, в основном считать 0,1,2 с помощью инкрементного оператора ++. хорошо, что делает то, что там есть определение статического

теперь, если я делаю то же самое в основном другим способом с моим кодом ниже … $ x не увеличивает его, он просто остается на 0.

//my code version below
function myTest() {
static $x = 0;
echo $x;
$x + 1;
myTest();
myTest();
myTest();
}

они в основном делают то же самое в теории

Версия w3schools увеличивает $ x на 1 с оператором ++. инкремент означает добавить

моя версия добавляет 1 с + оператором … и добавить средства, чтобы добавить также

так что можно с уверенностью сказать, что static работает только для инкрементных операторов
вместо основных математических операторов?

1

Решение

Это не имеет ничего общего с static ключевое слово. Код $x+1 не меняет значение $x вообще, так что никогда не увеличивается. $x+=1 или же $x = $x + 1 будет иметь эффект, который вы хотели.

0

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector