0

私は現在、次のコードを持つConnectというクラスを持っています。

class Connect
{
public $sqlHost='host';
public $sqlUser='user';
public $sqlPass='pass';
public $sqlDB='db';

public $db;
    public function __construct() {
        $this->db = new mysqli($this->sqlHost, $this->sqlUser, $this->sqlPass, $this>sqlDB);
    }
}
?>

TODOというクラスもありますが、Connectクラスにある$dbをTODOクラスから呼び出すにはどうすればよいでしょうか。

4

2 に答える 2

1

と呼ばれる2つのオブジェクトがあると想像してください

$connect = new Connect();
$todo = new TODO();

これで、3つのうちの1つが発生する可能性があります。$connectオブジェクトを$todoのメソッドに渡すか、ConnectオブジェクトがTODOオブジェクトのメンバーである場合、または新しい接続オブジェクトを作成できます。

シナリオ1:

class TODO {
    public function foo($connect){
        // You can get the db object here:
        $connect->db
    }
}

$todo->foo($connect)

シナリオ2:

class TODO {
    public $connect;
    public function __construct(){
        $this->connect=new Connect(); 
    }
    public function foo(){
        //get db:
        $this->connect->db;
    }
}
$todo->foo();

シナリオ3:

class TODO {
    public function foo(){
        $connect = new Connect();
        $connect->db;
    }
}
于 2013-02-01T01:11:51.150 に答える
0

何が欲しいのかわかりませんが、これだと思います

$connectInstance = new Connect();
$connectInstance->db...

このようにして、接続オブジェクトのdb変数にアクセスできます。ただし、最初に、オブジェクトをインスタンス化する必要があります。

于 2013-02-01T01:09:22.023 に答える