Как избежать передачи переменной соединения в качестве параметра функции в классе? - PullRequest
0 голосов
/ 04 октября 2018

Я довольно новичок в OOPS PHP, и мне кажется, что у меня проблемы с основной вещью.

Я пытаюсь установить переменную $ connection в конструкторе, а затем сделать эту переменную доступной по всему классу без явной передачи ее каждой функции в качестве параметра.

Сценарий работает какожидается, если я передам параметр $ connection в более позднюю функцию в качестве параметра, но кажется, что переменная $ connection недоступна во всем классе, так как я думаю, что это должно быть ... Я получаю «неопределенную переменную»: соединение "ошибка, если я не передам его.

Любая помощь будет оценена.Спасибо!

class ClsVREQDataAccess
{

protected $connection;

public function __construct() {

    $connection = $this->ConnectToLNSODB();

    $this->InitializeNewVREQ($connection);
}


public function InitializeNewVREQ($connection) {

    ... Do stuff to set up query ...

            $rst = $connection->prepare($strSQL);
            $rst->execute($params);

    ... Do other stuff ...

}

    ... more functions, incl the above referred-to ones ...

1 Ответ

0 голосов
/ 04 октября 2018

Вы должны использовать $this->connection везде, чтобы ссылаться на свойство объекта, которое вы назначаете в конструкторе.

class ClsVREQDataAccess
{

protected $connection;

public function __construct() {

    $this->connection = $this->ConnectToLNSODB();

    $this->InitializeNewVREQ();
}


public function InitializeNewVREQ() {

    ... Do stuff to set up query ...

            $rst = $this->connection->prepare($strSQL);
            $rst->execute($params);

    ... Do other stuff ...

}
...