2010-01-19 36 views
5

Tôi muốn tạo mảng với các phím đối tượng trong PHP, ví dụ: một cái gì đó như thế này:Làm thế nào để tạo cấu trúc dữ liệu giống như mảng với các khóa đối tượng trong PHP?

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

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

Tuy nhiên, điều này đặt ra một lỗi. Mảng chỉ có thể có số nguyên hoặc chuỗi khóa. Tôi phải làm một việc gì đó như:

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

Điều này có tác dụng nhưng không gọn gàng như tôi muốn. Có cách nào tốt hơn? (Có lẽ một cái gì đó từ SPL mà tôi là thiếu ...)

TIA

Trả lời

10

Bạn có thể sử dụng SplObjectStorage từ SPL như một bản đồ với các phím đối tượng:

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

Brilliant. Cảm ơn bạn! –

Các vấn đề liên quan