[英]Why am I getting NULL when I try to initiate a connection?
我有一個帶有全局$connection
的類,但是當我嘗試訪問它時,我得到的是NULL。 如您所見,如果我嘗試在構造函數內訪問,我不會得到NULL。 但是從getConnection()
我得到NULL。
class DatabaseManipulation
{
private $connection;
function __construct()
{
global $connection;
$connection = new mysqli("localhost", "root", "", "db");
$result = $connection->query("select * from user");
print_r($result); //I get an array
}
function getConnection(){
global $connection;
var_dump($connection); // I get -> object(DatabaseManipulation)#1 (1) { ["connection":"DatabaseManipulation":private]=> NULL } NULL
}
}
當我實例化一個對象$connection = new DatabaseManipulation();
時,也會發生同樣的事情$connection = new DatabaseManipulation();
。 難道我做錯了什么? 我希望這可以通過OO方式完成。 誰能幫我 ?
您正在使用OO PHP而不是程序性的。 因此將其更改為:
$this->connection = new mysqli("localhost", "root", "", "db");;
我希望這可以通過OO方式完成。
然后停止使用global
。 在上課時,您不想引用全局狀態。 快速瀏覽The Basics ,您會發現在對象內部有一個偽變量$this
。
class DatabaseManipulation
{
private $connection;
function __construct()
{
$this->connection = new mysqli("localhost", "root", "", "db");
}
function getConnection(){
var_dump($this->connection);
}
}
關於它的更多信息:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.