PHP无法找到私有变量

时间:2017-10-25 09:42:11

标签: php class private

由于某种原因,PHP无法找到我的私有变量。

我收到以下错误消息

  

* 6在stderr中发送的FastCGI:" PHP消息:PHP注意:未定义的变量:第24行的/var/www/simple-blog/models/database.php中的_database   PHP消息:PHP致命错误:未捕获错误:无法访问/var/www/simple-blog/models/database.php:24中的空属性

第24行是我设置$ _database = $ database。

的行
class Database {

private $_database;
private $_mysqli;


public function connect(string $host, string $username, string $password, string $database) : bool
{
    $this->$_database = $database;

    $this->$_mysqli = new mysqli($host, $username, $password, $database);

    if ($this->$_mysqli->connect_error) {
        return false;
    } else {
        return true;
    }
}
...

我尝试删除那些但是PHP无法找到变量$ _mysqli

3 个答案:

答案 0 :(得分:2)

您使用该变量的方式不正确。有关php类变量的更多详细信息,请查看http://php.net/manual/en/language.oop5.visibility.php

$this->$_database更改为$this->_database。 将$this->$_mysql更改为$this->_mysql

答案 1 :(得分:0)

你必须改变

$this->$_database = $database;

$this->_database = $database;

$this->$_mysqli

$this->_mysqli

$this->$_mysqli->connect_error

$this->_mysqli->connect_error

答案 2 :(得分:0)

更改声明可变项的方式:

 $this->_database = $database;