[PHP-users 19854]Re: リファレンスを入れた配列の先頭要素を取得
Osamu Shigematsu
shige @ ravi.ne.jp
2004年 1月 13日 (火) 08:58:48 JST
重松です。こんにちは。
> $a1 = new A("one");
> $a2 = new A("two");
> $a3 = new A("three");
ここ、new が返したオブジェクトもちゃんと参照で代入しないと、
コピーされます。
$a1 = & new A("one");
という感じです。
# まあ、大したコストではないんでしょうが。
それから、コードの一部がはしょられているのかもしれませんが、
$array が初期化されていませんね。
個人的には、意味が明確な、array() 関数を使って、
配列であることを明示することをお勧めしたい気持ちです。
$array = array(); // 空の配列
で、参照で要素をぐるぐる回るには:
for (reset($array); $pair = & each($array); ) {
$val = & $pair[1];
}
という感じで OK と思います。(多分)
確かに私も、PHP のコンテナは貧弱と思っていますし、
他の言語から移行した場合 std::vector, std::list に相当するものがないのは
結構きついものがある気がします。
ただし、現状、ないものはないのだから、致し方ないので、
結局はクラスで実装するか、あるいは、(連想) 配列に
無理やりそれらのコンテナのふりをさせる、
そして、アルゴリズム自体を連想配列にあわせる、
という選択になるかと思います。
--
Osamu Shigematsu
http://www.ravi.ne.jp/%7eshige/
PHP-users メーリングリストの案内