Неустранимая ошибка: вызов частного объекта MyObject :: __ () из недопустимого контекста

При создании нового объекта в PHP появляется следующее сообщение об ошибке:
Fatal error: Call to private MyObject::__construct() from invalid context
Я просто создаю новый объект и не пытаюсь вызвать конструктор явно. Кто-нибудь знает, что происходит?

Класс MyObject имеет защищенный или закрытый конструктор, что означает, что класс не может быть создан. Функции __construct() всегда вызываются при создании экземпляра объекта, поэтому попытка сделать что-то вроде $x = new MyObject() приведет к фатальной ошибке с частной конструкторской функцией. (Если вы специально не объявляете функцию __construct() , будет вызываться родительский конструктор).

Частные конструкторы часто используются в классах Singleton, чтобы предотвратить прямое создание объекта. Если это не класс, который вы создали, он может иметь доступную функцию getInstance() (или что-то подобное) для возврата экземпляра самого себя.

Для меня было то, что имя CLASS было тем же именем, что и один из методов s, который был закрыт …

например…

 class myClass { public function __construct() { } private function myClass() { } } 

Вместо $x = new MyObject() вы можете использовать

 $x = MyObject::getInstance(); 

предполагая, что MyObject является функцией Singleton и getInstance() .