Access level to PDO_Class::__construct() must be public
Daniel G.
- php
Hi
ich möchte das Entwurfsmuster Singleton mit PDO verwenden
meine Klasse sieht wie folgt aus
class PDO_Class
extends PDO
{
private static $instance = null;
private function __construct()
{
parent::PDO(_DSN);
}
private function __clone()
{
}
public static function getInstance()
{
if (self::$instance === NULL){
self::$instance = new PDO_Class;
}
return self::$instance;
}
} #Zeile 89
ich habe auch schon parent::__construct(_DSN);
probiert, jedoch erhalte ich die selbe Fehlermeldung
Fatal error: Access level to PDO_Class::__construct() must be public (as in class PDO) in /home/xxx/xxx/xxx/class/class.PDO_Class.php on line 89
wie kann ich das Problem lösen?
danke
Daniel
echo $begrüßung;
Fatal error: Access level to PDO_Class::__construct() must be public (as in class PDO) in /home/xxx/xxx/xxx/class/class.PDO_Class.php on line 89
wie kann ich das Problem lösen?
Auf dem Wege gar nicht. Der Konstruktor ist bereits in PDO als public deklariert. Seine Sichtbarkeit geht nun nicht wieder herabzusetzen. Das wäre auch aus deiner Singleton-Sicht nicht sinnvoll, weil man, deine Klasse ignorierend, ja einfach PDO instantiieren kann.
echo "$verabschiedung $name";
Moin!
Fatal error: Access level to PDO_Class::__construct() must be public (as in class PDO) in /home/xxx/xxx/xxx/class/class.PDO_Class.php on line 89
wie kann ich das Problem lösen?Auf dem Wege gar nicht. Der Konstruktor ist bereits in PDO als public deklariert. Seine Sichtbarkeit geht nun nicht wieder herabzusetzen. Das wäre auch aus deiner Singleton-Sicht nicht sinnvoll, weil man, deine Klasse ignorierend, ja einfach PDO instantiieren kann.
Merke: Das ganze public/protected/private-Gedöns kann man sich auch komplett sparen, wenn man von sich aus "vernünftig" programmiert (so wie in PHP 4 OOP). Es ist lediglich eine zusätzliche Schicht, die man nutzen kann, um sich gegen gewisse Fehler abzusichern. Und gegen andere eben nicht. Und gegen manche "will" man's nicht, so wie hier.
- Sven Rautenberg