Как создать массивы данных с ключами объектов в PHP? - PullRequest
5 голосов
/ 19 января 2010

Я хочу создать массивы с ключами объектов в PHP, т.е. что-то вроде этого:

<?php
$keyObject   = new KeyObject;
$valueObject = new ValueObject;

$hash = array($keyObject => $valueObject);

Однако возникает ошибка. Массивы могут иметь только целочисленные или строковые ключи. В итоге мне нужно сделать что-то вроде:

$hash = array(
    'key'   => $keyObject,
    'value' => $valueObject);

Это работает, но не так аккуратно, как хотелось бы. Есть ли способ лучше? (Возможно, что-то из SPL, что мне не хватает ...)

TIA

1 Ответ

10 голосов
/ 19 января 2010

Вы можете использовать SplObjectStorage из SPL как карту с ключами объекта:

$map = new SplObjectStorage;
$key = new StdClass;
$value = new StdClass;
$map[$key] = $value;
...