php变量不存储
我正在尝试用php创建一个db类,它将主机ect作为变量。我无法使初始化值保持不变,我不确定原因。当我在顶部将它们设置为public时,它工作得很好,但是当我尝试在构造函数中初始化它们时,它不工作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
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();
}
试试这个: