[PHP-users 10514] 1つのインスタンスを参照する2つの変数のチェック方法
KUROSAWA Akira
php-users@php.gr.jp
Thu, 03 Oct 2002 17:58:09 +0900
黒澤と申します。
現在、クラスを利用したプログラムを作成しています。
インスタンスの参照(リファレンス)について質問させて下さい。
1つのインスタンスを参照する2つの変数(リファレンス)がある場合に
この2つの変数が同じインスタンスを参照している事を確認する方法
を探しています。
例えば下記の「check_ref」のような関数を作りたいのです。
<?php
class Hoge
{
var $hoge = 'abc';
}
$object1 =& new Hoge;
$object2 =& new Hoge;
$object1_ref =& $object1;
if (check_ref($object1, $object2)) {
// ここは実行されません
}
if (check_ref($object1, $object1_ref)) {
// ここは実行されます
}
?>
PHPマニュアルの『第15章 リファレンスの説明』
http://www.php.net/manual/ja/language.references.php
のページで「check_reference」と言うそのものズバリのロジックが紹介されて
いましたが、この方法を応用したとしても、引数として渡すオブジェクトに対し
て次のような制限が発生してしまいます。
・クラス内に定義された変数の値として、インスタンスの参照を持てない。
これでは使用できるシチュエーションが、かなり限定されてしまいます。
他の方法はないかと思考錯誤しているのですが、良い方法をご存知の方が
いらっしゃいましたらご教示頂けないでしょうか。
参考になりそうなポインタだけでも構いません。
以上です。
よろしくお願い致します。
--
株式会社システムジェイ
システム開発グループ
黒澤 明 kurosawa@systemj.com