[PHP-users 9202] Re: クラス関数とオブジェクト関数で同一名を使うには?
Mashiki
php-users@php.gr.jp
Wed, 07 Aug 2002 01:34:31 +0900
Mashikiです。
大垣さんありがとうございます。
>元の記事を読んでませんでした。
>しかし、例に書いてあるコードと結果におかしな
>所はありませんが、どこがおかしいのでしょうか?
私も簡単なスクリプトをテストし、ある程度の自信を持って
進行中のプロジェクトのクラスに組み込もうとしたのですが、
「クラスメソッドとしてコールしたのに、isset($this)がtrueを
返し、しかもprint_rでチェックすると、クラスメソッドを持つ
クラスとまったく関係のないオブジェクトを指していた」と
いう状況に遭遇してしまいました。
大垣さんの修正されたスクリプトを多少複雑にしてみて、再現
させようと思ったのですが、再現してくれませんでした。
># PHP4のオブジェクトはハンドルではなく、オブジェクト
># 自体がコピーされてるのが困ると言う事でしょうか?
いえ、純粋にisset($this)などで切り分けが可能かを知りたかった
だけです。
>たしか、isset($this)はPEARにも使われていると思います。
>使ってはいけないと言う物ではないと思います。
今確認しました。PEAR.phpにバリバリ使われてますね。
私が再現を確認できたのは、インクルードするファイルが15
くらいで、pgsqlテーブルアクセスも10くらいある環境でしたので、
ソースをそのままUPすることはためらわれました。
また、再現性を残しつつ問題をリデュースすることもうまくいきま
せんでした。時間のあるときにもう一度トライしてみます。