![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| stalker2000 |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 29.7.2010 Репутация: нет Всего: нет |
Добрый день. Есть два файла:
1.php
2.php
по идее, в каждом цикле в файле 1 в сессии должны быть новые данные. Но фактически получаю только данные только последнего цикла:
почему так? |
||||||
|
|||||||
| whatisnot |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 14.12.2014 Репутация: 1 Всего: 2 |
Не последнего цикла, он у вас один, а последней его итерации. А на каком основании вы думаете, что должы быть данные не последней? И вообще, зачем здесь цикл?
Это сообщение отредактировал(а) whatisnot - 28.1.2015, 13:19 |
|||
|
||||
| stalker2000 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 29.7.2010 Репутация: нет Всего: нет |
||||
|
||||
| whatisnot |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 14.12.2014 Репутация: 1 Всего: 2 |
Ну файл тут как-то боком. Если нужно запомнить некое значение из набора, значит нужно взять это значение и выйти. Если же нужно запомнить все значения набора, значит их нужно запомнить. А у вас то ведь что:
$_SESSION['zzz'] = array('id'=>$n, 'name'=>rand(10000,99999)); - вы значения полученные на каждой итерации присваиваете одной и той же переменной, ну и с чего она должна хранить значения не последней, а других итераций? Как предписано, так и выполняется. Это сообщение отредактировал(а) whatisnot - 28.1.2015, 13:48 |
|||
|
||||
| stalker2000 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 29.7.2010 Репутация: нет Всего: нет |
куда выйти? Ничего не понял. Я присваиваю значение переменной, потом в другом месте беру её значение. Потом опять присваиваю ей новое значение и опять в другом месте использую. Разве не так? И ещё, файл №2 вызывается 3 раза, но уже в самый первый раз он откуда-то знает последнее значение цикла. Как так? Или он вызывается сразу три раз на последней итерации, а на первых двух пропускается? |
|||
|
||||
| whatisnot |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 14.12.2014 Репутация: 1 Всего: 2 |
Выйти из цикла, прервав его, выйти из функции...
Я вообще не понимаю для чего здесь цикл, в контексте вашего кода он безсмысленен - в каком бы месте вы не получали значения присвоенные $_SESSION['zzz'], это будут значения сформированные на последней итерации цикла. Что либо попроще и нагляднее:
Чему будет равно $k после цикла? Полагаю, понятно и почему. Ровно это же самое происходит и у вас. А вы чего ожидаете? |
|||
|
||||
| stalker2000 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 29.7.2010 Репутация: нет Всего: нет |
whatisnot, я ожидал что при каждой итерации будет выполнятся вызов файла №2:
А если добавить в №2 вывод id, то видно что второй файл вызывается не по порядку. Вот вывод файла №1 в браузер (это id): 89367 52734 50860 а вот вывод №2 в лог: 52734 89367 50860 причем порядок стабильный, сначала второй, потом первый, потом третий. Почему так? |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
смешно. на каждой итерации будет осуществляться вывод (echo) строки, в которой ссылка. а обращаться по этим ссылкам будет клиент. если вы хотите в этом месте выполнить код, так прямо и выполняйте |
|||
|
||||
| stalker2000 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 53 Регистрация: 29.7.2010 Репутация: нет Всего: нет |
||||
|
||||
| whatisnot |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 130 Регистрация: 14.12.2014 Репутация: 1 Всего: 2 |
Включение, это совсем не обязательно исполнение кода.
Из руководства: Если подключается файл (то есть это может быть text/html, text/plain, и др.), парсинг в режиме PHP кода прекращается и переключается в режим HTML в начале указанного файла и продолжается снова в конце. По этой причине любой код внутри включаемого файла, который должен быть выполнен как PHP код, должен быть заключен в верные теги начала и конца PHP кода. Ваша строка будет она во ключении, а не выводом конструкции echo, должна была иметь вид, например: <img src="2.php?id=<?=rand(10000, 99999)?>" alt="" /> в которой была бы исполнена функция rand(), результат которой был бы помещен в поток вывода, не будь ее - просто вывод. Это сообщение отредактировал(а) whatisnot - 29.1.2015, 06:15 |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |