【发布时间】:2013-03-06 17:07:13
【问题描述】:
我有一个小问题。我已经尝试过搜索,但我无法完全正确地找到搜索字词,希望有人能提供帮助。
我的系统中的每个页面都有一个包含,其工作方式如下:
<?PHP
require_once("class.system.php");
require_once("class.mysql.php");
$oMySQL = new MySQL();
$oSystem = new SystemClass();
... ?>
但我有一个问题。你可能猜到了——MySQL 类是我用来简化 MySQL 调用的一堆函数。这不是我想要使用它的唯一示例,但它是一个很好的示例。
我希望能够引用 MySQL 类的系统类中的函数(反之亦然...)。
例如,我在系统类中有一个函数,它将使用来自 MySQL 的数据填充会话变量。我能想到的唯一方法(我知道这是错误的......)是:
class SystemClass {
function PopulateSession(){
global $oMySQL;
if($oMySQL->Select('abc')){
$_SESSION['def']= blahblahblah;
return true;
} else {
return false;
}
}
}
它有效,但这意味着我想使用它的每个功能,我必须使用全局,我敢肯定这是非常糟糕的做法。有人可以建议吗??
谢谢
【问题讨论】:
-
为什么不将mysql类的实例传递给populatesession函数
-
您应该使用依赖注入并将数据库实例传递给您的系统类。
-
传递mysql类对象可以是你的解决方案
标签: php class global-variables