gpt4 book ai didi

php - 在另一个类中调用类的对象

转载 作者:行者123 更新时间:2023-11-30 23:20:57 25 4
gpt4 key购买 nike

我是 OOP 的新手。我在过程编程方面工作了很多。所以我现在有点麻烦。你能告诉我如何在另一个类中调用一个类的对象,然后我可以使用该对象访问该类的所有变量和函数吗?

例如

我有一类数据库连接。我在里面写了我的数据库查询。现在我有另一个名为 Users 的类。现在我需要访问用户类中的数据库查询,当然我需要 DBconnection 类的对象来访问所有数据库查询。我能做什么请帮忙

我写的示例代码如下:

**DBConnection class**

class DBConnection
{
public $SITEURL;
public $servername;
public $username;
public $password;
public $dbname;
public $objDbConnect;

function DBConnection(){
$this->SITEURL=Configuration::SITEURL;
$this->servername=Configuration::servername;
$this->username=Configuration::username;
$this->password=Configuration::password;
$this->objDbConnect=mysql_connect($this->servername,$this->username,$this->password);
if($this->objDbConnect){
mysql_select_db($this->dbname);
}
}
function InsertRecord($pStrTableName,$pArrField,$pArrValue)
{

$strSql="insert into $pStrTableName (";

$intFieldSize=count($pArrField);
for($i=0;$i<$intFieldSize;$i++)
{
if($i==$intFieldSize-1)
{
$strSql.=$pArrField[$i];
}
else
{
$strSql.=$pArrField[$i].",";
}
}
$strSql.=") values (";

$intFieldSize=count($pArrValue);
for($i=0;$i<$intFieldSize;$i++)
{
if($i==$intFieldSize-1)
{
$strSql.="'".$pArrValue[$i]."'";
}
else
{
$strSql.="'".$pArrValue[$i]."'".",";
}
}
$strSql.=")";
if(mysql_query($strSql))
{
return 1;
}
else
{
return 0;
}

}

}

**Users class**

class Users{

var $username,
$userpassword,
$email,


function User(){

}


}

最佳答案

最好的方法是使用单例模式。下面是一个例子

class DBConnection
{
private static $instance = null;

private function __construct() {

}

/*
* @return DBConnection
*/
public static function get_db()
{
if ( empty(self::$instance) ) self::$instance = new DBConnection();

return self::$instance;
}

public function query()
{

}
}


class User
{

function testfunc()
{
$db = DBConnection::get_db();
$db->query();
}
}

关于php - 在另一个类中调用类的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15470207/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com