- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Написал парсер, который в цикле обходил страницы и собирал данные в переменные, которые в конце каждой итерации писались в базу.
Случайно заметил чушь в данных, начал копать и пришел к выводу, что при каждой новой итерации, переменные которые определены внутри цикла не стираются, а перезаписываются данными следующей итерации, а если в следующей итерации данных для этой переменной нет, то пустота НЕ ПЕРЕЗАПИСЫВАЕТ данные предыдущей итерации. Это реально так?
Че то впервые с этим столкнулся и немного прифигел...
Че то впервые с этим столкнулся и немного прифигел...
Тут два варианта:
Тут два варианта:
Скрипт написал я. Значит описанное мной предположение невозможно? Переменные затираются при каждой итерации даже пустотой?
Скрипт написал я
Смотреть вариант 1.
Смотреть вариант 1.
Прописал перед определением каждой переменной в цикле присвоение ей пустоты (очищаю каждую переменную при итерации) и все глюки пропали.
Было так
стало так
инкапсуляция
Оо Sly32 новое слово выучил поздравляю 😀 Вообще-то инкапсуляция - это всего навсего скрытие(через private и protected) свойств и методов объекта.
Прописал перед определением каждой переменной в цикле присвоение ей пустоты
ТС по ходу в вложенном цикле определял данные, но не обнулял буфер(переменную которую я обычно называю автобус), поэтому у него эти данные суммировались. Инкапсуляция тут никаким боком 🤔
ТС по ходу в вложенном цикле определял данные, но не обнулял буфер(переменную которую я обычно называю автобус), поэтому у него эти данные суммировались. Инкапсуляция тут никаким боком 🤔
Так и есть - переменные определялись внутри цикла и на каждой итерации писались в базу.
Странность для мня по сути вот в чем - если на данной итерации в переменную не приходило данных (парсер не находил инфы на странице), то я ожидал что переменная станет пустой, а она оставалось со значением из прошлой итерации.
мне кажется, многие современные программисты забыли что такое цикл. помните, как в бейсике if - goto ...
Цикл, это не функция. Это просто возвращение к какой-либо предыдущей строке кода. Соответственно что бы вы не делали в цикле, переменные - вернее их количество - как было на входе, так и останется на выходе. (разумеется, если вы их в цикле не удаляете)