L'extension de ArrayObject en PHP correctement?

Problème: je suis en train d'étendre PHP ArrayObject comme indiqué ci-dessous. Malheureusement, je ne peux pas le faire fonctionner correctement lors de la configuration multi-objets tridimensionnels et au lieu d'une erreur jeté comme j'ai le strict paramètres activé dans PHP. (Error: Strict standards: Creating default object from empty value)

Question: Comment puis-je modifier ma classe pour créer automatiquement des non-existant niveaux pour moi?

Le 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);
    }
}
Quelle est la version de PHP que vous utilisez?
5.3.5 Je pense que c'est!
Salut Industrielle! Avez-vous vraiment besoin de votre Config classe à une spécialisation de ArrayObject, ou vous avez besoin tout simplement parce que les informations de stockage des facilités qu'elle offre?
Salut Nick! Non, je l'ai réglé pour une ArrayObject mise en œuvre après cette question: stackoverflow.com/questions/7202784/...

OriginalL'auteur Industrial | 2011-08-31