将mysqli传递给类以供函数使用

时间:2013-02-10 23:10:51

标签: php oop constructor mysqli

可能多次问过,但我很头脑。

我有以下类来管理MySQL数据库。

class blog {        
    function show ($mysqli) {
    // Code working on $mysqli here
    }
}

因为我将在这个类里面的许多函数中使用$ mysqli,所以我读到我可以创建构造函数,以便将$ mysqli变量传递给类并在每个函数内部使用它,这样我就可以执行以下操作: / p>

$blog = new blog($mysqli);
$blog -> show();

这可能吗?

2 个答案:

答案 0 :(得分:4)

这称为Dependency injection

只需在您的班级中使用字段$mysqli并在构造函数中对其进行初始化,然后通过$this->mysqli使用它:

class blog {  
    private $mysqli;

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

    function show () {
        // Code working on $this->mysqli here
    }
}

答案 1 :(得分:1)

将它存储在课堂上,可能是:

class blog {
    private $mysqli;
    function __construct($dbi) {
        $this->mysqli = $dbi;
    }        
    function show () {
    $this->mysqli->query(); //example usage
    // Code working on $mysqli here
    }
}

然后在你的代码中使用该类:

$blog = new blog($mysqli);
$blog->show();