2009年01月11日

PHP:循環参照に対する動作の違い

・ 循環参照を持つ変数に何らかの処理を加えた時の動作の相違
・ 循環参照を見つける簡易関数(php5)

自前環境で、循環参照に対する幾つかの関数の動作を試行。
ちなみに、php v5.3 では循環参照をガーベッジ・コレクターが検出し、循環参照に使用されているメモリーを解放することができるとのこと。

■ 循環参照の例
A)配列で値渡し(※)
$a = array();
$a[0] = $a;

B)配列で参照渡し
$a = array();
$a[0] = &$a;

C)クラスインスタンスで値渡し
$a = new stdClass;
$a->p = $a;

D)クラスインスタンスで参照渡し
$a = new stdClass;
$a->p = &$a;


※ うーむ。これは循環参照というのかなぁ???

■ 自前の環境
PHP Version 5.2.3
System Windows NT
Server API Apache 2.0

続きを読む
posted by HiFa at 18:25 | 🌁 | Comment(0) | TrackBack(0) | ときどきPHP | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。