コードにはいくつかの問題があります。
2つは他の回答で説明されており、コードが機能するようになります (最終的にはすべてが台無しになりました)が、それでも間違ったアプローチであり、データベースに接続するオブジェクトの数は、所有しているオブジェクトの数倍になります。 。
この方法でDatabaseConnectionクラスを変更します
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);
}
}
この方法でLoginRegisterコンストラクターを変更します
function __construct($db){
$this->db= $db;
}
そして、この方法でregister.phpを作成します
require_once "functions.php";
$db = new DatabaseConnection();
$user = new LoginRegister($db->pdo);
次に、LoginRegisterで$this->db
を使用します $pdo
の代わりに ずっと。
$db接続をアプリケーションクラスの外部サービスにする主なアイデア。それ以外の場合は、軽蔑されたグローバルと同じですが、別の形式になります。