0

我有 3 节课(Mysqliconn、Users 和 News)。

mysqliconn.class

Class Mysqliconn {
..connect to db
}

新闻类

class News {
private $db;

   public function __construct( Mysqliconn $db ) {

   $this->db = $db; 
   }

   public test() {
     do something... 
   }
 }

用户类

class Users {
private $db;

   public function __construct( Mysqliconn $db ) {

   $this->db = $db; 
   }

   public test2() {

     do something...
   }
}

在我的 php 页面中

 $db = new Mysqliconn();
 $nw = new News( $db );
 $us = new Users( $db )

 $us->test2();
 $nw->test();

我的错误

Catchable fatal error: Argument 1 
passed to Users::__construct() must be an instance of Mysqliconn, 
none given, called in ....\class\class.news.php 

现在在我的用户类中,我想调用一个新闻类方法,但是如果我尝试在用户类中实例化新闻类,我会得到一个错误。

我怎样才能做到这一点?谢谢。

4

1 回答 1

1

请发布您遇到的错误。否则很难捕捉到问题。但是如果你不想在用户类中实例化新闻类,你可以像访问它一样

class News
{
    // news class
}

class Users
{
    public function some_method(News $news){
        // work with the $news object
    }
}

$us = new Users();
$us->some_method(new News(/*$db*/));

这只是一个基本代码,让您了解如何使用它。在生产环境中,您必须采取很多预防措施。

于 2013-02-28T13:13:38.823 回答