Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php变量不存储_Php_Mysql_Mysqli - Fatal编程技术网

php变量不存储

php变量不存储,php,mysql,mysqli,Php,Mysql,Mysqli,我正在尝试用php创建一个db类,它将主机ect作为变量。我无法使初始化值保持不变,我不确定原因。当我在顶部将它们设置为public时,它工作得很好,但是当我尝试在构造函数中初始化它们时,它不工作 class Database { public $dbHost; public $dbUser; public $dbPass; public $dbName; public $db; public function __construct

我正在尝试用php创建一个db类,它将主机ect作为变量。我无法使初始化值保持不变,我不确定原因。当我在顶部将它们设置为public时,它工作得很好,但是当我尝试在构造函数中初始化它们时,它不工作

    class Database {

    public $dbHost;
    public $dbUser;
    public $dbPass;
    public $dbName;

    public $db;

    public function __construct($Host, $User, $Pass, $Name){ 
        $dbHost = $Host;
        $dbUser = $User;
        $dbPass = $Pass;
        $dbName = $Name;
        $this->dbConnect();
    }

    public function dbConnect(){
        echo $dbPass;
        $this->db = new mysqli($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName);

        /* check connection */
        if (mysqli_connect_errno()){
            printf("Connect failed: %s\n", mysqli_connect_error());
            exit();
        }else{
            //echo 'connection made';
        }
    }

您没有在构造函数中正确初始化它们;尝试:

$this->dbHost = $Host;

您当前正在初始化一个名为$dbHost的局部变量,其作用域只是构造函数本身。

您必须使用
$this
来访问类内的实例变量,例如
$this->dbHost=$Host

更改此项:

public function __construct($Host, $User, $Pass, $Name){ 
        $dbHost = $Host;
        $dbUser = $User;
        $dbPass = $Pass;
        $dbName = $Name;
        $this->dbConnect();
    }
为此:

public function __construct($Host, $User, $Pass, $Name){ 
        $this->dbHost = $Host;
        $this->dbUser = $User;
        $this->dbPass = $Pass;
        $this->dbName = $Name;
        $this->dbConnect();
    }
public function __construct($Host, $User, $Pass, $Name){ 
        $this->dbHost = $Host;
        $this->dbUser = $User;
        $this->dbPass = $Pass;
        $this->dbName = $Name;
        $this->dbConnect();
    }

使用这个->

public function __construct($Host, $User, $Pass, $Name){ 
    $this->dbHost = $Host;
    $this->dbUser = $User;
    $this->dbPass = $Pass;
    $this->dbName = $Name;
    $this->dbConnect();
}
试试这个: