Sorunuzu Eğer çok boyutlu bir dizi var ki, bu yüzden bu gibi atın:
$config = array('foo' => array('bar' => array('baz' => 3)));
item('foo', 'bar', 'baz')
son diziye giden tüm yol boyunca koşmak ve 3 dönecekti çağırıyor. Eğer istediğiniz buysa, sadece yazmak $config['foo']['bar']['baz']
veya {[(2 daki yapılandırmaları koyabilirsiniz tüm iç içe diziler çok sonra ArrayObjects olmalı ama)]} ve) (dizi erişimi gösterimi veya $config->foo->bar->baz
kullanabilirsiniz.
Eğer işlevi tutmak istiyorsanız onu kapmak önce PHP tanımlanmamış endeksleri hakkında Bildirimi çıkaracağız çünkü, endeks üzerinde bazı kontroller eklemek gerekir. Buna ek olarak, neden InvalidArgumentException yerine İstisna kullanmayın. Bu durumda daha iyi uyuyor.
edit: removed some portion of the answer, because it was more like loud thinking
edit after comments
Tbh, I find it a rather awkward approach to reinvent array access through a method like this. In my opinion you should either pass the entire config or a subset to your objects during construction and let them take whatever they need through the regular array accessors. This will decouple your objects from your configManager and allows for easier modification at a later point.