LINUX.ORG.RU
ФорумAdmin

Invalid argument supplied for foreach


0

1

Загрузил сейчас сайт на хостинг, вылезла ошибка:

[18-Jul-2012 16:07:02] PHP Warning:  Invalid argument supplied for foreach() in /home/u747038992/public_html/galery.php on line 3


На локалке же все хорошо. Место на которое ругань хостинга(php):
foreach (glob("images/large/*.png") as $filename) {
	array_push($imgarr, basename($filename));
}
Как поправить и из-за чего ошибка-то, ведь на локалке все хорошо?

Как поправить и из-за чего ошибка-то

Свой генетический код поправить трудно.

// hint: glob иногда возвращает не масссив

baverman ★★★
()
Ответ на: комментарий от vladmenshikov

чувак, ты прикалываешься? Мало того что запостил в админ, а не в веб-девелопмент, так ещё и тупейшие вопросы задаёшь.

Про @, очевидно, была шутка. Прогеров что это юзать надо на дыбу.

А в твоём коде проблема в том что ты не проверяешь наличие путей. Это очевидно и дебажется обычными принтами.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

А в твоём коде проблема в том что ты не проверяешь наличие путей.

Теперь понял. Не понятна лишь ваша агрессия, включая baverman, не хотите отвечать нубам - так не отвечайте. Всяко-лучше чем завуалированные недосказы, вместо конкретного ответа.

vladmenshikov
() автор топика
Ответ на: комментарий от vladmenshikov

1) Потому что проблема тривиальна. Ты и сам мог сделать

echo glob("images/large/*.png");

и посмотреть что передаётся в foreach

2) похапэ настолько хреновый язык что в нём возможная така фигня. В нормальных языках программирования оно бы или выпало в ошибку «нет файлов подпадающих под заданную маску», либо glob выдал пустой массив и foreach не ругался бы. А тут чёрт знает что, в каждой строчке минное поле. И, главное, оно после ошибки продолжает работать. Из-за этого мы имеем тонны кривейших сайтов которые работают чёрт знает как.

3) Надо объяснять почему нельзя пользоваться @?

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Надо объяснять почему нельзя пользоваться @?

Желательно, ибо в гугле нашел только что это отключение warning-ов, но думаю это не то что ты имел ввиду?

vladmenshikov
() автор топика
Ответ на: комментарий от vladmenshikov

это именно то что я имею в виду. Нормальный код не генерит ворнингов. Тем более что ворнинги это, на самом деле, ошибки в коде.

Так вот, такое поведение приучает прогеров писать говнокод. 70% это обработка ошибок. Как заманчиво просто забить на это, не правда ли?

А потом сайт падает и никто не знает почему. Конечно первым делом обвинения хостера («у меня-то на компе работает, а у вас не работает, ваш хостинг говно!»).

Короче, переходи на питон и серьзёно поднимай программуху: паттерны, алгоритмы итп. Иначе всю жизнь будешь быдлокодить. Я достаточно проработал с вебпроектами и видел очень много программеров которые с годами так ничему и не научились и не научатся потому что просто не понимают проблем в себе и в своём коде.

true_admin ★★★★★
()
Ответ на: комментарий от thesame

вместе с нотисами пожрётся и всё остальное.

Да и вообще хватит юзать шареды. Юзайте vps с нужной версией php и никаких проблем не будет.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Я достаточно проработал с вебпроектами и видел очень много программеров которые с годами так ничему и не научились и не научатся потому что просто не понимают проблем в себе и в своём коде.

Это актуально далеко за пределами веб :( А ведь «век живи - век учись», ИМХО, главный постулат для программиста.

erfea ★★★★★
()
Ответ на: комментарий от wxw

foreach ((array)$...)

раз ты в этом сечёшь то порекомендуй ТС литературу по паттернам и антипаттернам для пыха.

true_admin ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.