首页 > 解决方案 > 如何避免将连接变量作为类中的函数参数传递?

问题描述

我对 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 ...

标签: phpoopconstructorscope

解决方案


您应该使用$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 ...

}

推荐阅读