настоящего времени у меня следующий код:Установить класс статического свойство с помощью конструкции
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()
в любом месте сценария, просто позвонив User::addUser()
. Есть ли способ установить статическое свойство через конструкцию или есть лучший способ обратиться к моей базе данных?
Зачем использовать конструктор для установки статического состояния? – tkausl
Почему вы хотите, чтобы '$ _db' был статичным, из любопытства? – Blake
В настоящее время для доступа к моей базе данных я должен повторить следующую строку в каждом методе, который должен получить к ней доступ или передать ее в аргументах: '$ db = Database :: getInstance() -> getConnection();'. Я считаю, что было бы лучше иметь классную доступную переменную, которую я могу использовать вместо того, чтобы повторять себя на всем протяжении. –