0

シングルトン クラスにメソッドがあります。このクラスは、子クラスによって拡張された親クラスから呼び出されます。

クラスが適切に宣言および作成されていると仮定します。これは、コーディング ロジックを簡単に説明したものです。

class Singleton
{
    public function load_sys()
    {
        $this->something();
    }

    public function something()
    {
        $this->load();
    }

    public function load(){}
}

class Parent
{
    public function __construct()
    {
        $this->sys = Singleton::init();
        $this->sys->load_sys();
    }
}

class Child extends Parent
{
    public function __construct()
    {
        parent::__construct();
    }
}

これを行うと、次のエラーが発生します。

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4296 bytes) in ~~~.php on line 102

何が原因でしょうか?

4

1 に答える 1

0

これは、メソッドを 2 回呼び出したことが原因ではなく、コードのエラーが原因である可能性があると思います。まず、角かっこでクラスを宣言しています。

class Singleton()

次のようにする必要があります。

class Singleton

Parentまた、 PHP の予約語であるクラスを宣言しているので、最初に名前を変更してみてください。

于 2012-04-08T07:19:29.377 に答える