When creating a new object in PHP, I get the following error message:Fatal error: Call to private MyObject::__construct() from invalid context
I just create the new object and do not try to call the constructor explicitly. Does anyone know what's going on?
Your MyObject
class has a protected or private constructor, which means that the class cannot be instantiated. __construct()
functions are always called when an object is instantiated, so trying to do something like $x = new MyObject()
will cause a fatal error with a private construction function. (If you do not specifically declare a __construct()
function, the parent constructor will be called).
Private constructors are often used in Singleton classes to prevent direct instantiation of an object. If it's not a class that you built, it might have a getInstance()
function available (or something similar) to return an instance of itself.
Instead of $x = new MyObject()
you could use
$x = MyObject::getInstance();
assuming that MyObject
is a Singleton and getInstance()
function is available.
For me its was that the name of the CLASS was the same name as one of the methods that was private...
for example...
class myClass {
public function __construct() {
}
private function myClass() {
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With