Я действительно озадачен этим. Я нахожусь в процессе преобразования очень большого веб -проекта из «линейного» кода PHP в «объектно -ориентированный» код PHP. До этого момента все прошло плавно. Вот ситуация. Из каждой записи и форматируют их в хорошем выходе, используя теги и т. Д. С кучкой эхоподобных поставщиков. Что -то вроде этого упрощенного примера: < /p>
$sql = "...querry syntax...";
$result = conn->query($sql);
while ($row = $result->fetch->object) {
echo "".$row->parameter."" // etc.
}
< /code>
Это было довольно сложное форматирование, но работало отлично и мог справиться с тысячами записей без каких -либо сбоев. Мой запрос на тестовый запуск - это вытягивание около 1500 записей. Я называю это так: < /p>
$record = new Record();
$record->load(); // loads the record from the database
$record->draw(); // outputs the final formatted data
< /code>
Опять же, это работает точно так же, как и ожидалось, нет проблем. Итак, вот где это становится интересным. Объект записи обрабатывает только одну запись. Таким образом, я создал объект RecordList, который, по сути, является массивом объектов записи, иногда в нескольких тысячах записей. У меня есть метод, который возвращает одну запись за раз из объекта записи, поэтому он используется таким: < /p>
$list = new RecordList();
$list->load(); // loads a bunch of records (also 1500 records)
while($record = $list->get_next_record()) {
$record->draw();
}
< /code>
Когда я пытаюсь запустить этот код, он выведет до 389 записей, но на 390 -м вызове браузер бросает ошибку полноэкранного состояния_STACK_OVERFLOW. Случается на Chrome и Edge.
Я пытался вывести память после каждого вызова, и я никогда не более 5 МБ использования, так что это не ошибка из памяти, и у меня нет рекурсивных вызовов в моих методах что я могу найти.
Кроме того, важно отметить, что это не что -то в самих данных ... Я тестирую его с живой базой данных, чтобы содержимое записей изменялось каждый раз, когда я запускаю свой код. /p>
Я пытался включить flush (); После каждого рисунка в моем объекте записи, но это не помогает. происходит с моей объектно -ориентированной версией. Шокирующе, это первый раз, когда я столкнулся с проблемой со стеком за 5 лет, работая над этим проектом, поэтому я не совсем уверен, как продолжить. < /P>
Любые мысли или идеи ? Я надеюсь, что я здесь просто кость, и это что -то очевидное для кого -то еще ... lol
Спасибо все!
Подробнее здесь: https://stackoverflow.com/questions/794 ... iented-php
Status_stack_overflow при преобразовании моего кода в объектно -ориентированный php ⇐ Php
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Status_stack_overflow при преобразовании моего кода в объектно -ориентированный php
Anonymous » » в форуме Php - 0 Ответы
- 7 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Status_stack_overflow при преобразовании моего кода в объектно -ориентированный php
Anonymous » » в форуме Php - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Status_stack_overflow при преобразовании моего кода в объектно -ориентированный PHP [закрыто]
Anonymous » » в форуме Php - 0 Ответы
- 9 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Alert(data.status) завершается с ошибкой, когда status=false, но не когда status=true
Anonymous » » в форуме Jquery - 0 Ответы
- 31 Просмотры
-
Последнее сообщение Anonymous
-