PHP4の値渡しと参照渡しについて今一度
2007年8月10日
既に関東破滅地帯並みに荒んでいるPHP4についてですけど
変数代入時の値渡しと参照渡し(リファレンス)について、ちょっと疑問が沸いたので調べました。
変数代入時の値渡しと参照渡し(リファレンス)について、ちょっと疑問が沸いたので調べました。
-
1をもし
$a = 1; $b = 1; $c = 1;
と書くと、[シンボル]-[変数名] のセットが3つ出来る(多分ですが)。
つまり、その分メモリの無駄使いになる(はず)。 - 2は
$a = &$b;
と書いても全く同じ意味になります。
- 2の後に
unset($a);
をしても、シンボルまでは消えません。
つまり[シンボル]-[$b]のセットは残ります。 - 3は、上記参考サイトには書いてありませんが、多分こうなるんじゃないかなぁという予測です。
後は
$obj = new Foo; $obj =& new Foo;
基本的には↓を使うべしというのが、大事だとおもつた
(↑だと、new Foo; で1つ、$obj = で1つ、計2つのシンボルが作られるとのこと)
突っ込みとか批判とか大歓迎です。
よろしくお願いしまーす。
よろしくお願いしまーす。