Ada beberapa masalah dengan kode Anda.
Dua dijelaskan dalam jawaban lain, yang akan membuat kode Anda berfungsi (akhirnya semuanya rusak), tetapi pendekatannya masih salah, yang akan menghubungkan ke database sebanyak objek yang Anda miliki .
Ubah kelas DatabaseConnection dengan cara ini
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);
}
}
Ubah konstruktor LoginRegister dengan cara ini
function __construct($db){
$this->db= $db;
}
Dan buat register.php dengan cara ini
require_once "functions.php";
$db = new DatabaseConnection();
$user = new LoginRegister($db->pdo);
dan kemudian di LoginRegister gunakan $this->db
bukannya $pdo
sepanjang jalan.
Ide utama untuk membuat koneksi $db sebagai layanan eksternal untuk kelas aplikasi. Kalau tidak, semuanya akan sama saja dengan hina global, tetapi hanya dalam bentuk lain.