Wir haben sehr seltsame Fehler, die gelegentlich in unseren PHP-Protokollen : Trying to get property of non-object.
Dieser genaue Fehler scheint durch den Zugriff auf das Mitglied $shortName
in der folgenden if-Anweisung verursacht zu werden:
Wenn ich self::$system
in eine Protokolldatei dump, sehe ich, dass es NULL
ist - direkt nach dem Erstellen mit dem Schlüsselwort new
.
Der interessanteste Teil ist, dass diese Datei in jeder Anfrage auf unserer Seite enthalten ist, also ca. 10 mal pro Sekunde ausgeführt wird. Aber manchmal scheitert es einfach, ohne dass jemand den Code (oder gar den Server) berührt.
Hat jemand anderes jemals ein solches Verhalten in PHP erlebt?
Wir haben schließlich herausgefunden, dass wir in den PHP-Fehler # 50027 geraten sind. Nachdem die php.ini-Variable zend.enable_gc
auf false gesetzt wurde, verschwand der Fehler.
Danke für alle Updates. (siehe ausführliche Kommentare oben zum Originalbeitrag).
Leider bin ich so ratlos wie du bist - mit diesem Code sieht alles gut aus.
Entweder
Wenn ich mit meinem Produktionssystem umgehen müsste, würde ich das return NULL
im Konstruktor auskommentieren und es für eine Weile in der Produktion laufen lassen. Das return sollte nicht Probleme verursachen, aber es ist das einzige komische Ding, das ich hier sehen kann.
Entschuldigung, ich kann nicht mehr als das helfen. Bitte komm zurück und lass es uns wissen, wenn du es herausgefunden hast.
Versuchen Sie den Singleton-Ansatz:
%Vor%und sehen Sie, was der Wert von $ self ist
Ihr Problem scheint von einem Überschreiben zu kommen oder nur weil Sie die $ system Variable nicht setzen
Mit der Singleton-Methode stellen Sie sicher, dass die Instanz nur einmal gesetzt wurde und nichts überschreibt.
ps. Was macht die Datei eigentlich?
Was ist diese Zeile: self :: $ system- & gt; shortName = strtolower (Gebietsschema :: getRegion ($ rfcName)) ;? Woher kommt der $ rfcName? Wenn es nicht definiert wird, bevor Sie versuchen, es zu verwenden, würde dies zu einem Fehler führen, der den Rest des Codes zum Scheitern bringt und Ihnen das Problem gibt, das Sie beschreiben.
Da ich Ihre gesamte Klasse nicht sehen kann, habe ich nicht alle Informationen, um die Frage zu beantworten, also ist dies nur eine Vermutung
Tags und Links php