Erweiterung in PHP ArrayObject richtig?

Problem: ich bin versucht zu verlängern PHP ArrayObject wie unten gezeigt. Leider kann ich es nicht mehr ordnungsgemäß funktioniert, wenn die Einstellung multi-dimensionale Objekte und stattdessen wird ein Fehler geworfen, als ich den strengen Einstellungen in PHP aktiviert. (Error: Strict standards: Creating default object from empty value)

Frage: Wie kann ich änderungen an meiner Klasse und erstellen Sie automatisch nicht vorhandene Ebenen für mich?

Code:

$config = new Config;
$config->lvl1_0 = true; //Works
$config->lvl1_1->lvl2 = true; //Throws error as "lvl1" isn't set already

class Config extends ArrayObject
{
    function __construct() {
        parent::__construct(array(), self::ARRAY_AS_PROPS);
    }

    public function offsetSet($k, $v) {
        $v = is_array($v) ? new self($v) : $v;
        return parent::offsetSet($k, $v);
    }
}
  • Welche version von PHP verwenden Sie?
  • 5.3.5 Ich denke, es ist!
  • Hallo Industrial! Brauchen Sie wirklich Ihre Config Klasse eine Spezialisierung der ArrayObject oder Sie brauchen einfach nur, weil die Informationen, die Speicherung von Einrichtungen, die es bietet?
  • Hi Nick! Nein, ich hab mich entschieden für ein ArrayObject Umsetzung nach dieser Frage: stackoverflow.com/questions/7202784/...
InformationsquelleAutor Industrial | 2011-08-31
Schreibe einen Kommentar