Det finns flera problem med din kod.
Två förklarades i det andra svaret, vilket kommer att få din kod att fungera (till slut blev allt bortskämt), men det är fortfarande fel tillvägagångssätt, vilket kommer att ansluta till databasen så många gånger så många objekt du har .
Ändra DatabaseConnection-klassen på detta sätt
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);
}
}
Ändra LoginRegister-konstruktorn på detta sätt
function __construct($db){
$this->db= $db;
}
Och gör register.php på det här sättet
require_once "functions.php";
$db = new DatabaseConnection();
$user = new LoginRegister($db->pdo);
och använd sedan $this->db
i LoginRegister istället för $pdo
hela vägen.
Huvudidén att göra $db-anslutning till en extern tjänst för applikationsklassen. Annars blir det samma sak som föraktad global, men bara i en annan form.