Heim >Backend-Entwicklung >PHP-Tutorial >Warum erhalte ich in PHP den Fehler „Es wird versucht, eine Eigenschaft eines Nicht-Objekts abzurufen'?
Versuch, die Eigenschaft eines Nicht-Objekts in PHP abzurufen: Eine detaillierte Erklärung
In PHP wird die Fehlermeldung „Es wird versucht, die Eigenschaft eines Nicht-Objekts abzurufen“ angezeigt -object“-Fehlermeldung kann verwirrend sein. Um die Ursache und Lösung dieses Fehlers zu untersuchen, analysieren wir die bereitgestellten Codeausschnitte:
// Control page $results = mysql_query(...); $sidemenus = mysql_fetch_object($results);
// View page foreach ($sidemenus as $sidemenu) { echo $sidemenu->mname."<br />"; }
Das Problem tritt auf, weil mysql_fetch_object() ein einzelnes Objekt zurückgibt, das die erste Zeile des Ergebnissatzes darstellt. wohingegen die Schleife auf der Seite „Ansicht“ $sidemenus als Array behandelt und versucht, als Array auf seine Elemente zuzugreifen Objekte.
// Fix $results = mysql_query(...); $sidemenus = array(); while ($sidemenu = mysql_fetch_object($results)) { $sidemenus[] = $sidemenu; }
Dieser überarbeitete Code initialisiert $sidemenus als Array und iteriert über die Ergebnismenge, wobei jedes Objekt dem Array hinzugefügt wird. Anschließend kann die Ansichtsseite $sidemenus sicher als Array von Objekten durchlaufen.
Alternativ können Sie für eine effizientere Datenbankverwaltung einen Wechsel zu PDO (PHP Data Objects) in Betracht ziehen. PDOStatement::fetchAll(PDO::FETCH_OBJ) bietet eine ähnliche Funktionalität, jedoch mit verbesserter Leistung und Sicherheit.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich in PHP den Fehler „Es wird versucht, eine Eigenschaft eines Nicht-Objekts abzurufen'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!