0

私は 3 つのクラス (Mysqlicon、Users、News) を持っています。

Mysqlicon.class

Class Mysqliconn {
..connect to db
}

News.class

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 クラス メソッドを呼び出したいのですが、Users クラス内で News クラスをインスタンス化しようとするとエラーが発生します。

これどうやってするの?ありがとう。

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 に答える