私は目的どおりに動作するオートローダクラスを作成しましたが、私は奇妙な動作に気づきました。私が見つけたクラスの結果は、spl_autoload_register()
関数を処理するメソッドに渡されます。私は倍を持っているのを見ている。スクリプトが2回呼び出された場合と同じように、データがシングルトンの場合は2つの配列が作成されるためです。phpシングルトンはオートローダクラスで2回自己呼び出しを続けます
私はその後、プライベートに設定されたコンストラクタを持っている私のシングルトン
public static function init()
{
if (!isset(self::$instance))
self::$instance = new self();
return self::$instance;
}
を作成するには、このメソッドを使用しています。私は、各メソッドが自分自身のクローンを作成するように見えるようにデバッグすることを行っています。
私のクラスとクラスは、spl_autoload_register()関数のどこかでクローンされていると思われます。
助けていただければ幸いです。
は、あなたがそれに応じ__clone機能を設定することがありますか? – busypeoples
完全なクラスコードを投稿できますか? – busypeoples
大丈夫です。私はこれを非シングルトンインスタンスとして実行すると、それ自体はクローンされません。 – Eli