Как предоставить аргумент конструктора другим методам в PHP?

У меня следующий класс:

class User {
    $con = mysqli_connect('localhost', 'root', '', 'thefilenet');

    public function __construct($username) {
        // code code code
    }

    public function isVerified($username) {
       $q1 = mysqli_query($con, "SELECT `Verified` FROM `_users` WHERE `Username` = '$username'");
        $verified = mysqli_fetch_array($q1)[0];
        return ($verified == 1) ? true : false;
    }

    public function thisThat($username) {
        // ...
    }
}

Также есть много методов, которые содержат по крайней мере один и тот же аргумент, $username предоставляется конструктору в $user = new User('myUserName'); время. Теперь я хочу использовать эти методы без указания аргумента $ username каждый раз.

Мол, я должен быть в состоянии сделать $user->isVerified(); вместо $user->isVerified('myUserName');

Как мне этого добиться?

PS: $username Аргумент требуется в каждом методе для динамического выбора таблицы / записи.

1 ответ

Решение

Просто сохраните $username Вы предоставляете конструктору в классе частную собственность для будущего использования:

class User 
{
    private $username;

    function __construct($username) {
        $this->username = $username;
    }

    function isVerified() {
       // check $this->username
    }
}
Другие вопросы по тегам