powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Странное поведение кода PHP
1 сообщений из 1, страница 1 из 1
Странное поведение кода PHP
    #40141088
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся со штукой, которую не могу понять.

Есть такой код с циклом:
Код: PHP
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
foreach ($lst['users'] as $login=>$rec)
{
  if (!isset($rec)) continue;
  if (!isset($rec['user'])) continue;
  $user = $usr[$rec['user']];
  $group = $rec['group'];
  $id = $rec['id'];
  $state = $rec['state'];
  ...
  $arg = [];
  $arg['state'] = $state;
  $arg['password'] = $user['password'];
  ...
$log->dbg("*** {$login} до обновления", ['login'=>$login, 'rec'=>$rec, 'user'=>$user, 'group'=>$group]);
  $tmp = $mc->user($rec['id'], $arg);
$log->dbg("*** {$login} после обновления", ['login'=>$login, 'rec'=>$rec, 'user'=>$user, 'group'=>$group, 'tmp'=>$tmp]);
  ...

};
Так вот "после обновления" почему-то выводятся данные для следующего элемента в цикле.
Причем это происходит в момент вызова $mc->user — там в $arg появляются данные, которые должны быть при следующем проходе цикла.
Не могу понять, как такое может быть. Доступ по ссылке не используется, передаваемые аргументы копируются по значению, изменить их вызывающая процедура не может (да и откуда ей знать, что будет на следующем проходе цикла).
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Странное поведение кода PHP
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]