Er zijn verschillende problemen met uw code.
Twee werden uitgelegd in het andere antwoord, waardoor je code werkt (uiteindelijk was het allemaal verwend), maar het is nog steeds een verkeerde benadering, die net zo vaak verbinding zal maken met de database als veel objecten die je hebt .
Wijzig de klasse DatabaseConnection op deze manier
class DatabaseConnection{
public $pdo;
public function __construct(){
$user = 'root';
$pass = '';
$dsn = 'mysql:charset=utf8;dbname=test;host=localhost;charset=utf8';
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
);
$this->pdo = new PDO($dsn, 'root', '', $opt);
}
}
Wijzig LoginRegister-constructor op deze manier
function __construct($db){
$this->db= $db;
}
En maak register.php op deze manier
require_once "functions.php";
$db = new DatabaseConnection();
$user = new LoginRegister($db->pdo);
en gebruik dan in LoginRegister $this->db
in plaats van $pdo
helemaal.
Het belangrijkste idee om $db-verbinding een externe service voor de toepassingsklasse te maken. Anders zal het allemaal hetzelfde zijn als wereldwijd veracht, maar dan in een andere vorm.