Разве PHP не позволяет типизировать массив как объект во время инициализации переменной? - PullRequest
0 голосов
/ 06 октября 2019

Я использую этот код для инициализации многомерного массива:

protected $availableAuthMechanisms = [
    'open' => (object)[
        'owner'       => 'Mohsin.Auth',
        'name'        => 'Open',
        'identifier'  => 'open'
    ]
];

И я получаю сообщение об ошибке " Константа содержит недопустимые операции ". Что здесь происходит? - Как мне этого добиться?

1 Ответ

3 голосов
/ 06 октября 2019

К сожалению, вы не можете привести массив внутри массива к объекту при его определении.

Что вы можете сделать, это привести массив к объекту после его извлечения.

Пример:

protected $availableAuthMechanisms = [
    'open' => [
        'owner'       => 'Mohsin.Auth',
        'name'        => 'Open',
        'identifier'  => 'open'
    ]
];

$obj = (object) $this->availableAuthMechanisms['open'];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...