170 похожих чатов

Друзья, всем привет! Может ли быть какая-то причина по которой глобальная

переменная, объявленная в функции как global не изменяется в теле функции, хотя новое значение ей присваивается?

16 ответов

32 просмотра

да. все дело в том, что не надо использовать глобальные переменные.

Роман-Матвеев Автор вопроса
Alexey Gevondyan
да. все дело в том, что не надо использовать глоба...

я может быть не корректно выразился. У меня вот так: $a=1; function foo(){ global $a; $a++; } foo(); echo $a; // 1 А судя по документации должно быть 2.

Роман-Матвеев Автор вопроса
Роман Матвеев
я может быть не корректно выразился. У меня вот та...

https://www.php.net/language.variables.scope тут написано что должно работать. видать у тебя по-другому

Роман-Матвеев Автор вопроса
Mark ит
а где вызов функции

ой, конечно. Поправил

Роман-Матвеев Автор вопроса
Mark ит
а где вызов функции

В общем, код вот: http://sandbox.onlinephpfunctions.com/code/c14ad15cd871cd43fd1f903e0c7d8dbc618f86e3 Пояснения: при вызове функции make_line_to() внутри нее должны меняться значения глобальных переменных $x и $y на новые значения. Соответствующее присвоение имеется в строчках 61 и 62. Но по итогу в строке 120 стоит echo, который выводит те значения $x и $y, которые были и до вызова функции (сам вызов в 119 строке)

Роман Матвеев
В общем, код вот: http://sandbox.onlinephpfunction...

геймдев какой-то... зачем пхп то вообще? заверни все в класс и не мучайся

Роман Матвеев
я слабоват в ООП

класс - не ооп. а просто избавление от глобала и собирание связанного функционала в одном месте.

Роман-Матвеев Автор вопроса
Alexey Gevondyan
класс - не ооп. а просто избавление от глобала и с...

перефразирую: я не очень хорошо владею классами

Роман Матвеев
перефразирую: я не очень хорошо владею классами

если ты можешь писать такой код - то разобраться в классах для тебя пол часа чтения доки. и сделать это надо. а то код выглядит как... ну начало нулевых как максимум. из сей.

Роман Матвеев
В общем, код вот: http://sandbox.onlinephpfunction...

Честно говоря во всей этой неразберихе сложно с телефона смотреть, пройдись дебагом по ним, посмотри, почему они не присваиваются

Роман-Матвеев Автор вопроса
Mark ит
Честно говоря во всей этой неразберихе сложно с те...

хм... дебагом :))) У меня вся техника дебага - это расставить echo где надо (и не надо) :)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта