【问题标题】:How to use global object in Class如何在类中使用全局对象
【发布时间】:2015-06-05 15:55:37
【问题描述】:

我想知道如何使以下成为全局函数。我希望类函数不必一直登录到我正在使用的 MySQL

https://github.com/joshcam/PHP-MySQLi-Database-Class#initialization

这就是我到目前为止所做的,这行得通吗?

<?php
require_once('system/MysqliDb.php');
$db = new MysqliDb ('host', 'username', 'password', 'databaseName');

class system{
  public function __construct() {
    $db;
 }

}
?>

【问题讨论】:

    标签: php mysql oop php-mysqlidb


    【解决方案1】:

    使用“依赖注入”传入数据库对象

    class system {
      protected $_db;
      public function __construct(MysqliDb $db){
        $this->_db = $db;
      }
    }
    

    【讨论】:

    • 很抱歉,但我得到的错误如下 [Fri Jun 05 14:32:47 2015] [error] [client 49.199.36.167] PHP Catchable fatal error: Argument 1 pass to system ::__construct() 必须是 MysqliDb 的实例,没有给出,在 /home/my$ 中调用
    • 这意味着你什么都没通过。你称它为新系统($db)...?
    【解决方案2】:

    我建议使用 getInstance() 方法。

    class system {
      protected $_db;
      public function __construct() {
        $this->_db = MysqliDb::getInstance();
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2011-03-23
      • 2012-10-10
      • 2016-05-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多