Der er flere problemer med din kode.
To blev forklaret i det andet svar, som vil få din kode til at fungere (til sidst blev det hele forkælet), men det er stadig forkert tilgang, som vil oprette forbindelse til databasen så mange gange så mange objekter du har .
Skift DatabaseConnection-klasse på denne måde
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);
}
}
Skift LoginRegister-konstruktør på denne måde
function __construct($db){
$this->db= $db;
}
Og lav register.php på denne måde
require_once "functions.php";
$db = new DatabaseConnection();
$user = new LoginRegister($db->pdo);
og derefter i LoginRegister brug $this->db
i stedet for $pdo
hele vejen.
Hovedideen at gøre $db-forbindelse til en ekstern tjeneste for applikationsklassen. Ellers vil det være det samme som foragtet global, men bare i en anden form.