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

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

Сообщение Anonymous »

Решено: Ну, после двух дней попытки каждого возможного исправления, оказывается, что когда код был скопирован, на самом деле в методе объекта была отсутствующая тег для закрытия. ::: Face palm ::: Обычно, это было бы очевидно из визуальной планировки, но в данном конкретном случае все, как ожидалось. Потребовался комментарий от «вашего здравого смысла», чтобы разбудить меня и подумать, чтобы подсчитать открытие и закрытие тегов Div. Кажется, это было медленное коварное наращивание, которое не создало достаточно большого стека, чтобы сбоевать Firefox (но с достаточным количеством записей в конечном итоге)! Спасибо за все комментарии, ребята! Я сейчас собираюсь ползти под камнем. :) < /p>

Эта проблема происходит только в Chrome /Edge, но не в Firefox, и я действительно наткнулся на этот. < /p>
Я в процессе преобразования очень большого веб -проекта из «линейного» 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 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Status_stack_overflow при преобразовании моего кода в объектно -ориентированный php
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Status_stack_overflow при преобразовании моего кода в объектно -ориентированный php
    Anonymous » » в форуме Php
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Alert(data.status) завершается с ошибкой, когда status=false, но не когда status=true
    Anonymous » » в форуме Jquery
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Почему я должен начать писать объектно-ориентированный код в PHP?
    Anonymous » » в форуме Php
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

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