2010-01-19 2 views
5

Ich möchte Arrays mit Objektschlüssel in PHP erstellen, das heißt so etwas wie dieses:Wie erstellt man Array-ähnliche Datenstrukturen mit Objektschlüsseln in PHP?

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

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

Doch dies einen Fehler auslöst. Arrays dürfen nur Integer- oder String-Schlüssel haben. Ich muss am Ende etwas tun wie:

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

Das funktioniert, aber es ist nicht so sauber wie ich möchte. Gibt es einen besseren Weg? (Vielleicht etwas aus der SPL, die ich fehle ...)

TIA

Antwort

10

Sie SplObjectStorage aus der SPL als Karte mit Objektschlüssel verwenden:

$map = new SplObjectStorage; 
$key = new StdClass; 
$value = new StdClass; 
$map[$key] = $value; 
+0

Brilliant. Vielen Dank! –