usdglander
@usdglander
Yipee-ki-yay

В чем суть конструкции и как такое возможно?

Добрый день. Абсолютно глупейший вопрос, но не выходит из головы.
Ковыряю исходный код Slim Framework. Обнаружил конструкцию:
$this->container = new \Slim\Helper\Set();
$this->container['settings'] = array_merge(static::getDefaultSettings(), $userSettings);

Как можно присваивать члену класса объект, а потом работать с ним как с массивом? В \Slim\Helper\Set никаких магических методов нет имеется. Пролейте свет, на ситуацию, пожалуйста. Заранее спасибо.
  • Вопрос задан
  • 593 просмотра
Решения вопроса 2
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
class Set implements \ArrayAccess, \Countable, \IteratorAggregate

Всё дело в том, что этот класс реализует интерфейс ArrayAccess.

P.S.
В \Slim\Helper\Set никаких магических методов нет имеется.

Еще как имеются - https://github.com/slimphp/Slim/blob/2.x/Slim/Help...
Ответ написан
muhammad_97
@muhammad_97
PHP-разработчик
Класс реализует интерфейс ArrayAccess: php.net/manual/ru/class.arrayaccess.php
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы