PHP Array Object показывает неожиданную ошибку T_DOUBLE_ARROW

У меня есть проблема, которая, кажется, в очереди $this->pd_db = object(
Показанная ошибка

Parse error: syntax error, unexpected T_DOUBLE_ARROW in /var/www/website/includes/PD.php on line 10 `

Вот мой код

$this->pd_db = object(
  'cstm'  => object(
    'table_name'      => "customdata",
    'table_version'   => '1.0'
  )
);

Пожалуйста, решите это.

2 ответа

Решение

Я подозреваю, что это должно выглядеть так:

$this->pd_db = (object)array(
  'cstm'  => (object)array(
    'table_name'      => "customdata",
    'table_version'   => '1.0'
  )
);

Хотя это кажется довольно ужасной идеей...

Похоже, вы пытаетесь создать ассоциативный массив, и в этом случае вы хотите:

$arr = array(
    'key1' => 'val1',
    'key2' => 'val2',
);

Если вы действительно хотите использовать объект, создание экземпляра объекта с этим синтаксисом невозможно. Вам нужно будет создать объект и назначенные свойства:

$obj = new stdObject;
$obj->key1 = 'val1';

Изменить: не знал, что вы можете привести массив к объекту. Если это ваша цель, путь Терешко лучше.

Другие вопросы по тегам