Nie mogę wywołać klasy w PHP

Mam taki kod:

<?php
require_once 'theme/theme/header.php';
echo '1';

class DB {

	protected $db;

	private function __construct() {
		try {
			$this->db = new PDO('mysql:host=127.0.0.1;dbname=cms', 'root', 'haslo');
			echo 'Connected !';
		} catch(PDOException $e) {
			die($e->getMessage());
			exit;
		}
	}

}
echo '2';
$a = new BD();
echo '3';

require_once 'theme/theme/footer.php';
?>

i wypisuje tylko 1, 2 ale 3 i footera już nie.Nie ma komunikaty o jakimkolwiek błędzie. Korzystam z PHP bodajże wersji 5.5.3

Bo ogólnie to niema prawa zadziałać.

Masz prywatny konstruktor, a próbujesz go wywołać z zewnątrz. Podejrzewam, że chciałeś uzyskać Singletona, ale nie bardzo pykło.


W php.ini zmień display_errors na On, error_reporting na E_ALL.

A w klasie dodaj kod:

protected static $h;
public static function handle()
{
  if (!is_object(self::$h))
    self::$h = new self;
  return self::$h;
}

Panieee, włącz Pan sobie error_reporting(E_ALL) i nie wywołuj klasy “new BD” tylko “new DB”

Mimo wszystko kod w stylu:

private function __construct(){};

a potem

$x = new X();

nie powinno zadziałać.

Musiałem omyłkowo dopisać private do konstruktora.

 

@zac7: W edytorze miałem dobrze, tutaj zmieniałem trochę kod i źle napisałem

 

Dzięki