PHP将类方法调用到另一个类
我有3个类(Mysqliconn、用户和新闻) Mysqliconn.classPHP将类方法调用到另一个类,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
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()
,并将其称为依赖项注入