[PHP-users 19797]Re: set_error_handlerにオブジェクトのメソッドを定義するときについて

ISIGE, Akira xia @ silvia.com
2004年 1月 9日 (金) 10:04:24 JST


いしげ です.

On 2004/01/09 9:49:58 JST,
"k.watanabe" <k.watanabe @ spclink.com> wrote:

> エラーハンドラの定義では、オブジェクトを参照で渡しているので
> newしたインスタンスの参照が使われると思っていたのですが、
> エラーハンドラで定義したオブジェクトと、実際にnewしたときのオブジェクトは、
> 別のオブジェクトということなのでしょうか?

そういうことだと思います.

> http://www.php.net/manual/ja/language.oop.newref.php

マニュアル↑にある通り,new 演算子はデフォルトではコピーを返しますので,
コンストラクタ内での $this が指していたインスタンスではなく,
別の,コピーされたインスタンスが $error に入るわけですね.

よって,ここをコピーでなく参照で渡すように,
<?php
$error =& new Error();
?>
という代入の仕方をすればうまくいくと思います.

ていうか,手元の環境では,うまくいきました.


--
ISIGE, Akira



PHP-users メーリングリストの案内