Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Цикл foreach - глюк в PHP 4.3.10, или так и должно быть? 
:(
    Опции темы
IZ@TOP
  Дата 24.12.2004, 14:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Вот тут на днях хостер ПО обновлял, как раз когда я IPB постаил на хост. И случилось так что он перестал работать, а все дело оказалось в цикле foreach.
Как описано в мане, эта функция должна перебирать массив и возращать его значение либо ключ/значение в переменные:

Код

<?php

$TestArray = array(
   0 => 'Value 1',
   1 => 'Value 2',
   2 => 'Value 3',
   3 => 'Value 4',
);

foreach($TestArray as $Value) {
   echo $Value."\r\n";
}

?>

В итоге должен отобразиться следующий результат:
Цитата
Value 1
Value 2
Value 3
Value 4

Но не тут то было, вместо этого в переменную $Value записывался еще один массив, в первом ключе которого было значение массива $TestArray, а во втором его ключ:

Цитата
Array(
    [0] => Value 1
    [1] => 0
)
...
Array(
    [0] => Value 4
    [1] => 3
)

Вот такой вот глюк однако. Либо я заблуждаюсь?

PS Не зря ни когда этот цикл не юзал, а то за это время что эта фигня проиходила, наш интернет-магазин перестал бы работать и меня за одно место подвесили smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sergejzr
Дата 24.12.2004, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 5
Всего: 360



Цитата(IZ @ 24.12.2004, 13:54)
Вот такой вот глюк однако. Либо я заблуждаюсь?

Это не глюк, это фича smile

<Извиняюсь, я был не прав! Opr правильно предложил smile>
Код

<?php
$TestArray = array(
  'Вася' => 'брюнет',
   'Маша' => 'блондинка',
   'Петя' => 'лысый',
   'Вова' => 'шатен',
);

foreach($TestArray as $Key=>$Value) {
   //Как бы мы иначе узнали, как зовут блондинку? :) :)
   echo $Key." у нас ".$Value;
}
?>



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Opik
Дата 24.12.2004, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Нет, не глюк, ибо:
Код
<?php

$TestArray = array(
  0 => 'Value 1',
  1 => 'Value 2',
  2 => 'Value 3',
  3 => 'Value 4',
);

foreach($TestArray as $Key => $Value) {
  echo $Value."\r\n";
}

?>

Будет работать как надо smile
Добавлено @ 15:02
sergej.z
Как, как? как в моем примере smile))))))

Это сообщение отредактировал(а) Opr - 24.12.2004, 15:01
PM MAIL Skype   Вверх
IZ@TOP
Дата 24.12.2004, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Ага, ты скажи это тем кто писал IPB 1.3 ;) Там аезде foreach'и...
sergej.z, ни когда бы не подумал smile А добраться еще можно использую просто each.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sergejzr
Дата 24.12.2004, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 5
Всего: 360



Цитата(Opr @ 24.12.2004, 14:00)
Как, как? как в моем примере smile))))))

Именно, у тебя же тоже "foreach". Он и нужен, что бы пройтись по ВСЕМ элементам массива.
Если у тебя ключи 0...ххх, то можешь бежать циклом for(i=0; i<xxx; i++), а если ключи хэши?


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Opik
Дата 24.12.2004, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



sergej.z
Для чего нужен foreach и for я уж знаю smile
Вопрос был по:
Ключ => Значение:
foreach($TestArray as $Key => $Value)
Код

<?php
$TestArray = array(
 'Вася' => 'брюнет',
  'Маша' => 'блондинка',
  'Петя' => 'лысый',
  'Вова' => 'шатен',
);

foreach($TestArray as $Key => $Value)
  echo $Key." у нас ".$Value;
}
?>

PM MAIL Skype   Вверх
IZ@TOP
Дата 24.12.2004, 15:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Opr, глюк! Это прикинь что мне надо сделать чтобы мои скрипты заработали если бы я в них юзал этот цикл??!!! Перелопатить все и поменять на то что у тебя написано, а в IPB именно
Код

foreach($a as $b) { ... }
!!!


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 24.12.2004, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



IZ@TOP
Я пишу всегда так, и никаких глюков не замечаю smile))
не глюк, а фича (с) smile Ибо переход версии, сам подумай логически,
foreach($a as $b){
print $b;
}
Если $b - массив, то что должно вывестись??? Вот он и выводит массив, один фиг тебе придется либо ключи укзаывать, вообщем переписывать надо будет...
PM MAIL Skype   Вверх
IZ@TOP
Дата 24.12.2004, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



И используется потом именно $b!!! И не как массив, а как строка! У меня на форуме вся навигация из однох сплошных Array состояла...


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
sergejzr
Дата 24.12.2004, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

Репутация: 5
Всего: 360



Opr Ты прав! Я стормозил smile
Пост уже подредактипрвал..


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
IZ@TOP
Дата 24.12.2004, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Opr, хрен переписывать. Они обратно все вернули smile


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 24.12.2004, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



Цитата(IZ @ 24.12.2004, 15:13)
И используется потом именно $b!!! И не как массив, а как строка! У меня на форуме вся навигация из однох сплошных Array состояла...

Ну так и читай мой вариантsmile))
foreach($a as $key=>$value){
print $value;
}
Добавлено @ 15:16
IZ@TOP
Это не повод не переписывать... и уж лучше сидеть на новом ПО. ибо его выпускают не просто для удовольствия... Это лишь дало тебе время на переписание движка smile
Добавлено @ 15:17
sergej.z
Ну твой варинт тоже ведь приемлем smile
PM MAIL Skype   Вверх
IZ@TOP
Дата 24.12.2004, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Блин, ты видел из вообще сорсы IPB? А завтра они еще что -то введут и мне сидеть переписывать? У меня других дел сейчас полно, вместо того чтобы чужой код переписывать.
Добавлено @ 15:34
Opr, я кстате уже собирался так и переписывать как ты показал. Не дураг все же. И речь вообще не о том была. А почему именно так работает если в мане другое написано???


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Opik
Дата 24.12.2004, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: 24
Всего: 55



IZ@TOP
Видел, колопатил smile) ща правда IPB 2.0 колопачу smile))
PM MAIL Skype   Вверх
IZ@TOP
Дата 24.12.2004, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 44
Всего: 73



Opr, IPB 2.0 насколько мне известно вообще скомпиленый.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1355 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.