PHP将类方法调用到另一个类

PHP将类方法调用到另一个类,php,Php,我有3个类(Mysqliconn、用户和新闻) Mysqliconn.class Class Mysqliconn { ..connect to db } 新闻类 class News { private $db; public function __construct( Mysqliconn $db ) { $this->db = $db; } public test() { do something... } } 用户类 clas

我有3个类(Mysqliconn、用户和新闻)

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 
现在在我的类Users中,我想调用一个News类方法, 但是如果我试图在类用户内部显示类新闻,我会得到一个错误

我该怎么做?
谢谢。

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

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*/));

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

什么错误?阶级不存在?您是否包含了类文件?为什么不将您的
News
类插入到
User
构造函数中?
Users
没有意义。如何拥有单个
用户
?是的,如果是静态类,为什么要将$db作为参数传递?我会为数据库类创建一个单例类。这不是一个好主意。你的代码甚至不起作用。而且它也不是单例。仍然不是单例:删除
function instance()
,并将其称为依赖项注入