代码之家  ›  专栏  ›  技术社区  ›  Carlton Gibson

如何在PHP中使用对象键创建类似数组的数据结构?

  •  5
  • Carlton Gibson  · 技术社区  · 15 年前

    我想用PHP创建带有对象键的数组,例如:

    <?php
    $keyObject   = new KeyObject;
    $valueObject = new ValueObject;
    
    $hash = array($keyObject => $valueObject);
    

    但是,这会引发一个错误。数组只能有整数或字符串键。我最终不得不做如下的事情:

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

    这行得通,但没有我想要的那么整洁。有更好的方法吗?(也许是我找不到的SPL的东西…)

    蒂亚

    1 回复  |  直到 15 年前
        1
  •  10
  •   Ben James    15 年前

    你可以使用 SplObjectStorage 从SPL作为带有对象键的映射:

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