4

クイックワン; それが可能かどうかは疑問ですが、オブジェクトarray($key => $value);に関してPHPの構文を利用する方法はありますか?SplObjectStorage

私が言いたいのは、達成するためのそのような方法はありますか?

$store = // ?
    new KeyObject() => new ValueObject(),
    new KeyObject() => new ValueObject(),
    // ...

オブジェクトストアを初期化するコンテキストでは?今のところ、私は単に使用しています:(そして、これが可能性であるというまったくの可能性を考慮して、おそらく継続します

$store = new SplObjectStorage();
$store[new KeyObject()] = new ValueObject();
$store[new KeyObject()] = new ValueObject();
// ...

それを非常に疑って、いいでしょう、しかし多分誰かがもっとよく知っています。

4

2 に答える 2

3

より簡潔な構文になりますが、残念ながらそれは不可能です。あなたができる最善のことは次のいずれかです:

$store[new KeyObject()] = new ValueObject();

また

$store->append( new KeyObject(), new ValueObject());

にオブジェクトを追加する場合SplObjectStorage

于 2011-11-29T06:38:59.443 に答える
2

そのようなことをしてみませんか:

$store = new SplObjectStorage();

$data = array(
    array(new KeyObject, new ValueObject),
    array(new KeyObject, new ValueObject),
    array(new KeyObject, new ValueObject),
);

foreach($data as $item) {
    list($key, $value) = $item;
    $store->attach($key, $value);
}

美しくはありませんが、少なくとも簡潔です。

于 2011-11-29T06:36:58.197 に答える