次の問題があります。クラスを使用していて、__destructor メソッドで「イベントの保存 (およびログ記録)」を行いたいのですが、データベース クラスがまだアクティブであること、さらには memcache クラスがまだアクティブであることを確認する必要があります。
デストラクタ メソッドの呼び出しが遅すぎることに気付きました。(データベース クラスはアクティブではなくなり、memcache クラスはアクティブではなくなりました)
私が見つけた回避策は...
$forum = new Forum_class();
$forum->output();
unset($forum) <-- unset it
これは良い習慣ですか?または、デストラクタ メソッドの使用をスキップして、アクティブな他のクラスに依存することを行う必要があります... (利用可能なデータベース クラス、利用可能な memcache クラス...)
おそらく、データベースと memcache クラスをできるだけ早く設定解除するべきではありませんが、他のクラスについては、できるだけ早く設定解除する必要があります。(ページ上で不要になった場合) または、__destructor 関数を使用する場合のみですか?
それとも私は恐ろしい間違ったことをしていますか?クラスの設定を解除することを常に確認する必要があるのは奇妙に思えます。一度忘れると、__destructor メソッドでエラーが発生する可能性があります...
編集: このバグhttps://bugs.php.net/bug.php?id=39381に出くわしたと思います。私のデータベースクラスと memcache クラスはグローバルを使用しています...