を経由して、クラスの静的プロパティを設定します。私は現在、次のコードを持っている:私は構造を通して私のデータベース接続を使用してクラスのプロパティを設定しようとしているは、構造
class User {
private static $_db;
public function __construct() {
self::$_db = Database::getInstance()->getConnection();
}
public static function addUser ($name, $username, $password) {
// Define Values
$name = ucwords(trim($name));
$username = strtolower(trim($username));
$password = password_hash($password, PASSWORD_BCRYPT);
// Define Query
$query = "INSERT INTO `users` (name, username, password) VALUES(:name, :username, :password)";
// Prepare Query
$preparedQuery = self::$_db->prepare($query);
// Execute Query
$preparedQuery->execute([
':name' => $name,
':username' => $username,
':password' => $password
]);
}
}
を。問題は、を呼び出すだけで、スクリプトの任意の場所にあるaddUser()
メソッドにアクセスできるようにしたいということです。コンストラクトを介して静的プロパティを設定する方法はありますか、それとも私のデータベースにアクセスするより良い方法がありますか?
スタティックステートをセットアップするのになぜコンストラクタを使用しますか? – tkausl
なぜあなたは '$ _db'を好奇心から静的にしたいのですか? – Blake
現在、私のデータベースにアクセスするには、アクセスする必要のあるすべてのメソッドで、次の行を繰り返すか、引数に渡す必要があります: '$ db = Database :: getInstance() - > getConnection();'私は全面的に繰り返すのではなく、私が使用できるクラス全体のアクセス可能な変数を持つ方が良いと感じています。 –