Status_stack_overflow при преобразовании моего кода в объектно -ориентированный phpPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Status_stack_overflow при преобразовании моего кода в объектно -ориентированный php

Сообщение Anonymous »

Эта проблема происходит только в Chrome/Edge, но не в Firefox, и я действительно наткнулся на этот. Over From "Linear" PHP -кода в «объектно -ориентированный» PHP -код. До этого момента все перешло плавно, но вот ситуация. Традиционный цикл через объекты SQL, чтобы получить данные из каждой записи, и форматирует их в хорошем выходе, используя теги и т. Д. С кучей операторов Echo. Что -то вроде этого упрощенного примера: < /p>
$sql = "...query syntax...";
$result = conn->query($sql);
while ($row = $result->fetch->object) {
echo "".$row->parameter."" // etc.
}
< /code>
Это было довольно сложное форматирование, но работало отлично и мог справиться с тысячами записей без каких -либо сбоев. Мой запрос на тестовый запуск - это вытягивание около 1 500 записей, но он работает с более чем 10 000 записей. и выводит форматирование в виде блока HTML -кода. Я называю это так: < /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 (); После каждого рисования в моем объекте записи, но, похоже, это не помогает. в метод, называемый «draw ()». Я планирую обновить его для создания всего формата в переменной, называемой выводом $, а затем отобразить его с одним оператором Echo, прежде чем выходить из метода. Не уверен, что это может быть, по крайней мере, отчасти вызвать проблему, но хотел упомянуть об этом на всякий случай. это происходит только с моей объектно -ориентированной версией. действительно уверен, как продолжить.

Подробнее здесь: https://stackoverflow.com/questions/794 ... iented-php
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Status_stack_overflow при преобразовании моего кода в объектно -ориентированный php
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Status_stack_overflow при преобразовании моего кода в объектно -ориентированный php
    Anonymous » » в форуме Php
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Status_stack_overflow при преобразовании моего кода в объектно -ориентированный PHP [закрыто]
    Anonymous » » в форуме Php
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Alert(data.status) завершается с ошибкой, когда status=false, но не когда status=true
    Anonymous » » в форуме Jquery
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Почему я должен начать писать объектно-ориентированный код в PHP?
    Anonymous » » в форуме Php
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»