Status_stack_overflow beim Konvertieren meines Code in objektorientierte PHPPhp

PHP-Programmierer chatten hier
Guest
 Status_stack_overflow beim Konvertieren meines Code in objektorientierte PHP

Post by Guest »

Update: Ich habe gerade herausgefunden, dass dieses Problem nur in Chrome/Edge, aber nicht in Firefox stattfindet. Vielleicht ist das eine Ahnung für jemanden, der ein bisschen mehr mit diesem Thema sachkundiger ist ... < /p>
Ich bin wirklich verblüfft. Ich bin gerade dabei, ein sehr großes Webprojekt aus dem "linearen" PHP -Code in "objektorientierte" PHP -Code umzuwandeln. Alles hat bis zu diesem Punkt reibungslos übergeht. Hier ist die Situation. < /P>
In meinem ursprünglichen Code hatte ich eine PHP Jeder Datensatz und formatiert sie in einer schönen Ausgabe mit Tags usw. mit einer Reihe von Echo -Anweisungen. So etwas wie dieses vereinfachte Beispiel: < /p>
$sql = "...querry syntax...";
$result = conn->query($sql);
while ($row = $result->fetch->object) {
echo "".$row->parameter."" // etc.
}
< /code>
Es war eine ziemlich komplexe Formatierung, funktionierte aber perfekt und konnte Tausende von Datensätzen ohne Schluckauf verarbeiten. Meine Testanfrage zieht ungefähr 1500 Datensätze, aber sie hat mit über 10.000 Datensätzen gearbeitet. Die Formatierung als HTML -Codeblock. Ich nenne es so: < /p>
$record = new Record();
$record->load(); // loads the record from the database
$record->draw(); // outputs the final formatted data
< /code>
Dies funktioniert erneut genauso wie erwartet kein Problem. Hier wird es also interessant. Das Rekordobjekt behandelt nur einen einzelnen Datensatz. Daher habe ich ein RecordList -Objekt erstellt, das im Wesentlichen ein Array von Datensatzobjekten ist (mit einer Reihe von Methoden zum Umgang mit Suchvorgängen, unterschiedlichen Abfragen usw.), manchmal ebenso wie ein paar tausend Datensätze. Ich habe eine Methode, die jeweils einen Datensatz aus dem RecordList -Objekt zurückgibt, damit sie so verwendet wird: < /p>
$list = new RecordList();
$list->load(); // loads a bunch of records (also 1500 records)
while($record = $list->get_next_record()) {
$record->draw();
}
< /code>
Wenn ich versuche, diesen Code auszuführen, gibt er bis zu 389 Datensätze aus. Auf dem 390. Aufruf löst der Browser jedoch den Vollbildmodus status_stack_overflow -Fehler aus. Passiert bei Chrome und Edge. Dass ich finden kann. /p>
Ich habe versucht, einen Flush () aufzunehmen; Nach jedem Zeichnen in meinem Rekordobjekt, aber es scheint nicht zu helfen. < /p>
Es ist wahrscheinlich erwähnenswert in eine Methode namens "Draw ()". Ich plane, dies zu aktualisieren, um das gesamte Format in einer Variablen namens $ Output zu erstellen und es dann mit einer einzelnen Echo -Anweisung anzuzeigen, bevor ich die Methode verließ. Ich bin mir nicht sicher, ob dies zumindest teilweise das Problem verursacht, wollte es aber nur für den Fall erwähnen. Es passiert nur mit meiner objektorientierten Version. Schockierend, dies ist das erste Mal, dass ich seit 5 Jahren auf ein Problem mit dem Stapel gestoßen bin, und ich bin mir nicht sicher, wie ich vorgehen soll. < /P>
Gedanken oder Ideen ? Ich hoffe, ich bin hier nur ein Bonehead und es ist etwas Offensichtliches für jemand anderen ... lol
Vielen Dank!

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post